const originalOpen = XMLHttpRequest.prototype.open
const originalSend = XMLHttpRequest.prototype.send

XMLHttpRequest.prototype.open = function (method, url) {
  this._url = url
  originalOpen.apply(this, arguments)
}

XMLHttpRequest.prototype.send = function (body) {
  const oldOnLoad = this.onload

  // 拦截请求并修改参数
  if (this._url.includes('https://rvid.imperium.com/dedupe')) {
    try {
      if (body && typeof body === 'string') {
        let data = JSON.parse(body)

        data = {
          PropertyList:
            '0|0|0|0|0|0|0|Chrome|0|24|0|0|0|0|0|true|0|0|0|0|0|0|false|Yes|1|9999|0|0|133.0.0.0|0|true|0|1080|1040|1|0|0|1|0|false|0|1|0|0|0|de-DE|133|0|0|0|r||0|0|0|0|0|1|MacOSX|0|0|0|0|0|1|0|0|1|1|0|20|1|0|0|133.0|0|0|0|0|0|0|1920|1920|0|true|true',
          CachedExternalId: '',
          SurveyId: 'Default',
          PanelistId: '0',
          PanelId: 'SSI',
          GeoCodes: '',
          MachineTime: data.MachineTime,
          IANATimeZone: data.IANATimeZone,
          CID: '',
          TID: '',
          CSOTimePeriodSeconds: '21',
          VID: '',
          CanvasId: -2028326104,
          CanvasHash: '5044a88543205b22b822ce06850846acff9a3962e6c17ee87e04391fcbaa93aa',
          PluginList: [
            'PDF Viewer',
            'Chrome PDF Viewer',
            'Chromium PDF Viewer',
            'Microsoft Edge PDF Viewer',
            'WebKit built-in PDF',
          ],
          WebGLRenderer: 'ANGLE (AMD, AMD Radeon Pro 5500 XT OpenGL Engine, OpenGL 4.1)',
          MembershipTenure: '0',
          HoneyPotFlagTriggered: 0,
          HardwareConcurrency: 4,
          FileSystemRequest: 2,
          IndexDb: 2,
          LocalStorage: 2,
          RIFFlag: 0,
          CookieTampered: 0,
          ManipulatedInputFields: [],
          NavigatorPlatform: 'MacIntel',
          CustomFactor: null,
          WebGLDataHash: '6e601a855e1b97b1ef6d4525f12f97cd2da24a5127ecd89f7339d811bda0e601',
          DeviceMemory: 8,
          MaxTouchPoints: 0,
          WebDriver: false,
          HasCypress: false,
          HistoryLength: 7,
          InIFrame: false,
          FeatDetectedBrowser: 'Chromium',
          PageTranslated: false,
          DevicePixelRatio: 1,
          NavigatorUserAgent:
            'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36',
          NavigatorLanguages: data.NavigatorLanguages,
          AutomatedBrowserProps: [],
          NotificationPermissions: 2,
          EvalLength: 33,
          NetworkDownlink: 0.5,
          NetworkEffectiveType: '3g',
          NetworkRoundTripTime: 600,
          KeyboardLayoutMapSize: 48,
          MediaDevicesConstraintsCount: 35,
          SupportsBluetooth: 0,
          StorageManagerQuotaBytes: 64425136128,
          StorageManagerUsageBytes: 0,
          NavUAHintBrands:
            '[{"brand":"Not(A:Brand","version":"99"},{"brand":"Google Chrome","version":"133"},{"brand":"Chromium","version":"133"}]',
          NavUAHintBrowserFullVersion: '133.0.6943.142',
          NavUAHintBrowserFullVersionList:
            '[{"brand":"Not(A:Brand","version":"99.0.0.0"},{"brand":"Google Chrome","version":"133.0.6943.142"},{"brand":"Chromium","version":"133.0.6943.142"}]',
          NavUAHintPlatform: 'macOS',
          NavUAHintPlatformVersion: '13.6.2',
          NavUAHintModel: null,
          NavUAHintArchitecture: 'x86',
          NavUAHintMobile: false,
          HasAccelerometer: 0,
          HasGyroscope: 0,
          AudioSampleRate: 48000,
          MediaDeviceGroups: {
            '': ['audioinput', 'audiooutput'],
          },
          JSPrivacyDetect: 0,
          MimeTypes: ['application/pdf', 'text/pdf'],
          OuterWidth: 929,
          OuterHeight: 1012,
          DevToolsOpen: 0,
          JSVersion: '2.0.0',
        }

        body = JSON.stringify(data) // 重新设置请求体
      }
    } catch (e) {
      console.error('Failed to parse or modify request body', e)
    }
  }

  // 拦截请求并修改参数
  this.onload = function () {
    if (this._url.includes('https://rvid.imperium.com/dedupe')) {
      try {
        let response = JSON.parse(this.responseText)

        // 修改
        response.FraudFlagCount = 0
        response.FraudProfileScore = 0
        response.Score = 2
        response.FraudFlags = '000000000000000'
        response.FraudRiskProbability = -1

        // 让 responseText 可修改
        const modifiedResponse = JSON.stringify(response)
        console.log('modifiedResponse: ', modifiedResponse)
        Object.defineProperty(this, 'response', { value: modifiedResponse, configurable: true })
        Object.defineProperty(this, 'responseText', { value: modifiedResponse, configurable: true })
      } catch (e) {
        console.error('Failed to parse or modify response', e)
      }
    }

    if (oldOnLoad) {
      oldOnLoad.apply(this, arguments)
    }
  }

  originalSend.call(this, body) // 使用修改后的 body 发送请求
}

try {
  function sendLogMessageAsync(a, d, c) {
    try {
      if (a === 'e') {
        console.error(d + '\n' + c)
      } else {
        if (a === 'w') {
          console.warn(d + '\n' + c)
        }
      }
      var b = document.location.protocol == 'https:' ? 'https:' : 'http:'
      b += '//cs.imperium.com/messaging/rvid?'
      b += 'l=' + a
      b += '&m=' + encodeURIComponent(d)
      if (c !== undefined) {
        b += '&err=' + encodeURIComponent(c.stack)
      }
      b +=
        '&c=' +
        (document.getElementById('ClientID') != null
          ? document.getElementById('ClientID').value
          : '')
      b +=
        '&s=' +
        (document.getElementById('SurveyID') != null
          ? document.getElementById('SurveyID').value
          : '')
      b +=
        '&p=' +
        (document.getElementById('PanelistID') != null
          ? document.getElementById('PanelistID').value
          : '')
      var g = createRVIDXMLHttpRequest()
      g.open('POST', b)
      g.send()
    } catch (e) {
      console.error(e)
    }
  }

  function createRVIDXMLHttpRequest() {
    if (window.XMLHttpRequest) {
      return new XMLHttpRequest()
    }
    try {
      return new ActiveXObject('MSXML2.XMLHTTP.6.0')
    } catch (a) {}
    try {
      return new ActiveXObject('MSXML2.XMLHTTP')
    } catch (a) {}
    try {
      return new ActiveXObject('Microsoft.XMLHTTP')
    } catch (a) {}
    return null
  }

  function setHoPoDetection(c) {
    if (!document.getElementById(c)) {
      var a = document.createElement('input')
      a.setAttribute('type', 'text')
      a.setAttribute('id', c)
      var e = document.createElement('label')
      e.setAttribute('for', c)
      e.setAttribute('aria-hidden', 'true')
      var b = document.forms[0] || document.body
      b.appendChild(e)
      b.appendChild(a)
      var d = document.getElementById(c)
      if (d.setAttribute) {
        e.setAttribute(
          'style',
          'display: inline-block !important; height: 0 !important; width: 0 !important; border: 0 !important; padding: 0 !important; margin: 0 !important',
        )
        a.setAttribute(
          'style',
          'height: 0 !important; width: 0 !important; border: 0 !important; padding: 0 !important; margin: 0 !important',
        )
      } else {
        e.style.display = 'inline-block'
        d.style.width = e.style.width = 0
        d.style.height = e.style.height = 0
        d.style.border = e.style.border = 'none'
        d.style.padding = e.style.padding = '0'
        d.style.margin = e.style.margin = '0'
      }
      d.tabIndex = e.tabIndex = '-1'
      d.value = '_'
      if (typeof d.addEventListener != 'undefined') {
        d.addEventListener(
          tochar(105) + tochar(110) + tochar(112) + tochar(117) + tochar(116),
          function (g) {
            _hpd = 1
          },
          false,
        )
      } else {
        if (typeof d.attachEvent != 'undefined') {
          d.attachEvent(
            tochar(111) +
              tochar(110) +
              tochar(105) +
              tochar(110) +
              tochar(112) +
              tochar(117) +
              tochar(116),
            function (g) {
              _hpd = 1
            },
          )
          d.attachEvent(
            tochar(111) +
              tochar(110) +
              tochar(107) +
              tochar(101) +
              tochar(121) +
              tochar(100) +
              tochar(111) +
              tochar(119) +
              tochar(110),
            function (g) {
              _hpd = 1
            },
          )
        }
      }
    }
  }

  function tochar(a) {
    return String.fromCharCode(a)
  }

  function getManipulableInputValues() {
    var a = {}
    if (document.getElementById('ClientID') != null) {
      a.ClientID = document.getElementById('ClientID').value
    }
    if (document.getElementById('SurveyID') != null) {
      a.SurveyID = document.getElementById('SurveyID').value
    }
    if (document.getElementById('PanelistID') != null) {
      a.PanelistID = document.getElementById('PanelistID').value
    }
    if (document.getElementById('panelID') != null) {
      a.panelID = document.getElementById('panelID').value
    } else {
      if (document.getElementById('PanelID') != null) {
        a.PanelID = document.getElementById('PanelID').value
      }
    }
    if (document.getElementById('GeoCodes') != null) {
      a.GeoCodes = document.getElementById('GeoCodes').value
    }
    return a
  }

  function getManipulatedInputFields(c, b) {
    var a = []
    if (c.ClientID != b.ClientID) {
      a.push('ClientID')
    }
    if (c.SurveyID != b.SurveyID) {
      a.push('SurveyID')
    }
    if (c.PanelistID != b.PanelistID) {
      a.push('PanelistID')
    }
    if (c.panelID != b.panelID) {
      a.push('panelID')
    }
    if (c.PanelID != b.PanelID) {
      a.push('PanelID')
    }
    if (c.GeoCodes != b.GeoCodes) {
      a.push('GeoData')
    }
    return a
  }
  'object' != typeof JSON && (JSON = {}),
    (function () {
      var rx_one = /^[\],:{}\s]*$/,
        rx_two = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
        rx_three = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
        rx_four = /(?:^|:|,)(?:\s*\[)+/g,
        rx_escapable =
          /[\\"\u0000-\u001f\u007f-\u009f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
        rx_dangerous =
          /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
        gap,
        indent,
        meta,
        rep

      function f(t) {
        return t < 10 ? '0' + t : t
      }

      function this_value() {
        return this.valueOf()
      }

      function quote(t) {
        return (
          (rx_escapable.lastIndex = 0),
          rx_escapable.test(t)
            ? '"' +
              t.replace(rx_escapable, function (t) {
                var e = meta[t]
                return 'string' == typeof e
                  ? e
                  : '\\u' + ('0000' + t.charCodeAt(0).toString(16)).slice(-4)
              }) +
              '"'
            : '"' + t + '"'
        )
      }

      function str(t, e) {
        var r,
          n,
          o,
          u,
          f,
          a = gap,
          i = e[t]
        switch (
          (i && 'object' == typeof i && 'function' == typeof i.toJSON && (i = i.toJSON(t)),
          'function' == typeof rep && (i = rep.call(e, t, i)),
          typeof i)
        ) {
          case 'string':
            return quote(i)
          case 'number':
            return isFinite(i) ? String(i) : 'null'
          case 'boolean':
          case 'null':
            return String(i)
          case 'object':
            if (!i) {
              return 'null'
            }
            if (
              ((gap += indent), (f = []), '[object Array]' === Object.prototype.toString.apply(i))
            ) {
              for (u = i.length, r = 0; r < u; r += 1) {
                f[r] = str(r, i) || 'null'
              }
              return (
                (o =
                  0 === f.length
                    ? '[]'
                    : gap
                      ? '[\n' + gap + f.join(',\n' + gap) + '\n' + a + ']'
                      : '[' + f.join(',') + ']'),
                (gap = a),
                o
              )
            }
            if (rep && 'object' == typeof rep) {
              for (u = rep.length, r = 0; r < u; r += 1) {
                'string' == typeof rep[r] &&
                  (o = str((n = rep[r]), i)) &&
                  f.push(quote(n) + (gap ? ': ' : ':') + o)
              }
            } else {
              for (n in i) {
                Object.prototype.hasOwnProperty.call(i, n) &&
                  (o = str(n, i)) &&
                  f.push(quote(n) + (gap ? ': ' : ':') + o)
              }
            }
            return (
              (o =
                0 === f.length
                  ? '{}'
                  : gap
                    ? '{\n' + gap + f.join(',\n' + gap) + '\n' + a + '}'
                    : '{' + f.join(',') + '}'),
              (gap = a),
              o
            )
        }
      }
      'function' != typeof Date.prototype.toJSON &&
        ((Date.prototype.toJSON = function () {
          return isFinite(this.valueOf())
            ? this.getUTCFullYear() +
                '-' +
                f(this.getUTCMonth() + 1) +
                '-' +
                f(this.getUTCDate()) +
                'T' +
                f(this.getUTCHours()) +
                ':' +
                f(this.getUTCMinutes()) +
                ':' +
                f(this.getUTCSeconds()) +
                'Z'
            : null
        }),
        (Boolean.prototype.toJSON = this_value),
        (Number.prototype.toJSON = this_value),
        (String.prototype.toJSON = this_value)),
        'function' != typeof JSON.stringify &&
          ((meta = {
            '\b': '\\b',
            '\t': '\\t',
            '\n': '\\n',
            '\f': '\\f',
            '\r': '\\r',
            '"': '\\"',
            '\\': '\\\\',
          }),
          (JSON.stringify = function (t, e, r) {
            var n
            if (((gap = ''), (indent = ''), 'number' == typeof r)) {
              for (n = 0; n < r; n += 1) {
                indent += ' '
              }
            } else {
              'string' == typeof r && (indent = r)
            }
            if (
              ((rep = e),
              e && 'function' != typeof e && ('object' != typeof e || 'number' != typeof e.length))
            ) {
              throw new Error('JSON.stringify')
            }
            return str('', {
              '': t,
            })
          })),
        'function' != typeof JSON.parse &&
          (JSON.parse = function (text, reviver) {
            var j

            function walk(t, e) {
              var r,
                n,
                o = t[e]
              if (o && 'object' == typeof o) {
                for (r in o) {
                  Object.prototype.hasOwnProperty.call(o, r) &&
                    (void 0 !== (n = walk(o, r)) ? (o[r] = n) : delete o[r])
                }
              }
              return reviver.call(t, e, o)
            }
            if (
              ((text = String(text)),
              (rx_dangerous.lastIndex = 0),
              rx_dangerous.test(text) &&
                (text = text.replace(rx_dangerous, function (t) {
                  return '\\u' + ('0000' + t.charCodeAt(0).toString(16)).slice(-4)
                })),
              rx_one.test(text.replace(rx_two, '@').replace(rx_three, ']').replace(rx_four, '')))
            ) {
              return (
                (j = eval('(' + text + ')')),
                'function' == typeof reviver
                  ? walk(
                      {
                        '': j,
                      },
                      '',
                    )
                  : j
              )
            }
            throw new SyntaxError('JSON.parse')
          })
    })()
  var RVIDPrivacy =
    RVIDPrivacy ||
    (function () {
      function c(p, m) {
        var e = p.requestFileSystem || p.webkitRequestFileSystem
        if (e != null) {
          try {
            e(
              p.TEMPORARY,
              1,
              function () {
                m(2)
              },
              function () {
                m(1)
              },
            )
          } catch (o) {
            m(1)
          }
        }
      }

      function d() {
        c(window, function (e) {
          b.filesystem = e
        })
      }

      function a(p, n, q) {
        var v, m
        try {
          if (
            ((v =
              p.indexedDB || p.webkitIndexedDB || p.mozIndexedDB || p.oIndexedDB || p.msIndexedDB),
            v != null)
          ) {
            try {
              m = v.open('impidx_db', 1)
              m.onerror = function () {
                n(1, null)
              }
              m.onsuccess = function (A) {
                var z = A.target.result
                if (z.objectStoreNames.contains(l)) {
                  var B = z.transaction([l]),
                    D = B.objectStore(l),
                    E = D.get('impstorage')
                  E.onsuccess = function (e) {
                    q(e.target.result)
                  }
                }
                n(2, z)
              }
              m.onupgradeneeded = function (e) {
                var o = e.target.result
                o.objectStoreNames.contains(l) || o.createObjectStore(l)
                n(2, o)
              }
            } catch (w) {
              n(1, null)
            }
          }
        } catch (x) {
          n(0, null)
        }
      }

      function g() {
        a(
          window,
          function (e) {
            b.indexdb = e
          },
          function () {},
        )
      }

      function h() {
        try {
          var m = window.localStorage
          if (null != m) {
            try {
              m.setItem('imp_id', 1)
              m.removeItem('imp_id')
              b.localStorage = 2
            } catch (e) {
              b.localStorage = 1
            }
          }
        } catch (e) {}
      }

      function j() {
        return b
      }
      var l = 'impidxobj',
        b = {
          filesystem: 0,
          indexdb: 0,
          localStorage: 0,
        }
      return (
        d(),
        g(),
        h(),
        {
          GetStorage: function () {
            return j()
          },
        }
      )
    })()
  !(function (c) {
    var b = (function () {
      var v = 's',
        B = {
          DAY: 86400000,
          HOUR: 3600000,
          MINUTE: 60000,
          SECOND: 1000,
          BASELINE_YEAR: 2014,
          MAX_SCORE: 864000000,
          AMBIGUITIES: {
            'America/Denver': ['America/Mazatlan'],
            'Europe/London': ['Africa/Casablanca'],
            'America/Chicago': ['America/Mexico_City'],
            'America/Asuncion': ['America/Campo_Grande', 'America/Santiago'],
            'America/Montevideo': ['America/Sao_Paulo', 'America/Santiago'],
            'Asia/Beirut': [
              'Asia/Amman',
              'Asia/Jerusalem',
              'Europe/Helsinki',
              'Asia/Damascus',
              'Africa/Cairo',
              'Asia/Gaza',
              'Europe/Minsk',
            ],
            'Pacific/Auckland': ['Pacific/Fiji'],
            'America/Los_Angeles': ['America/Santa_Isabel'],
            'America/New_York': ['America/Havana'],
            'America/Halifax': ['America/Goose_Bay'],
            'America/Godthab': ['America/Miquelon'],
            'Asia/Dubai': ['Asia/Yerevan'],
            'Asia/Jakarta': ['Asia/Krasnoyarsk'],
            'Asia/Shanghai': ['Asia/Irkutsk', 'Australia/Perth'],
            'Australia/Sydney': ['Australia/Lord_Howe'],
            'Asia/Tokyo': ['Asia/Yakutsk'],
            'Asia/Dhaka': ['Asia/Omsk'],
            'Asia/Baku': ['Asia/Yerevan'],
            'Australia/Brisbane': ['Asia/Vladivostok'],
            'Pacific/Noumea': ['Asia/Vladivostok'],
            'Pacific/Majuro': ['Asia/Kamchatka', 'Pacific/Fiji'],
            'Pacific/Tongatapu': ['Pacific/Apia'],
            'Asia/Baghdad': ['Europe/Minsk', 'Europe/Moscow'],
            'Asia/Karachi': ['Asia/Yekaterinburg'],
            'Africa/Johannesburg': ['Asia/Gaza', 'Africa/Cairo'],
          },
        },
        q = function (m) {
          var l = -m.getTimezoneOffset()
          return null !== l ? l : 0
        },
        a = function () {
          var e = q(new Date(B.BASELINE_YEAR, 0, 2)),
            l = q(new Date(B.BASELINE_YEAR, 5, 2)),
            m = e - l
          return m < 0 ? e + ',1' : m > 0 ? l + ',1,' + v : e + ',0'
        },
        h = function () {
          var m, l
          try {
            if (
              'undefined' != typeof Intl &&
              'undefined' != typeof Intl.DateTimeFormat &&
              ((m = Intl.DateTimeFormat()),
              'undefined' != typeof m && 'undefined' != typeof m.resolvedOptions)
            ) {
              return (
                (l = m.resolvedOptions().timeZone),
                l && (l.indexOf('/') > -1 || 'UTC' === l) && 0 != l.indexOf('Etc') ? l : void 0
              )
            }
          } catch (m) {
            return void 0
          }
        },
        g = function (F) {
          for (
            var G = new Date(F, 0, 1, 0, 0, 1, 0).getTime(),
              I = new Date(F, 12, 31, 23, 59, 59).getTime(),
              E = G,
              l = new Date(E).getTimezoneOffset(),
              D = null,
              t = null;
            E < I - 86400000;

          ) {
            var H = new Date(E),
              m = H.getTimezoneOffset()
            m !== l && (m < l && (D = H), m > l && (t = H), (l = m)), (E += 86400000)
          }
          return (
            !(!D || !t) && {
              s: z(D).getTime(),
              e: z(t).getTime(),
            }
          )
        },
        z = function p(G, I, F) {
          'undefined' == typeof I && ((I = B.DAY), (F = B.HOUR))
          for (
            var l = new Date(G.getTime() - I).getTime(),
              E = G.getTime() + I,
              D = new Date(l).getTimezoneOffset(),
              K = l,
              J = null;
            K < E - F;

          ) {
            var m = new Date(K),
              H = m.getTimezoneOffset()
            if (H !== D) {
              J = m
              break
            }
            K += F
          }
          return I === B.DAY ? p(J, B.HOUR, B.MINUTE) : I === B.HOUR ? p(J, B.MINUTE, B.SECOND) : J
        },
        x = function (o, l, n, m) {
          if ('N/A' !== n) {
            return n
          }
          if ('Asia/Beirut' === l) {
            if ('Africa/Cairo' === m.name && 1398376800000 === o[6].s && 1411678800000 === o[6].e) {
              return 0
            }
            if (
              'Asia/Jerusalem' === m.name &&
              1395964800000 === o[6].s &&
              1411858800000 === o[6].e
            ) {
              return 0
            }
          } else {
            if ('America/Santiago' === l) {
              if (
                'America/Asuncion' === m.name &&
                1412481600000 === o[6].s &&
                1397358000000 === o[6].e
              ) {
                return 0
              }
              if (
                'America/Campo_Grande' === m.name &&
                1413691200000 === o[6].s &&
                1392519600000 === o[6].e
              ) {
                return 0
              }
            } else {
              if ('America/Montevideo' === l) {
                if (
                  'America/Sao_Paulo' === m.name &&
                  1413687600000 === o[6].s &&
                  1392516000000 === o[6].e
                ) {
                  return 0
                }
              } else {
                if (
                  'Pacific/Auckland' === l &&
                  'Pacific/Fiji' === m.name &&
                  1414245600000 === o[6].s &&
                  1396101600000 === o[6].e
                ) {
                  return 0
                }
              }
            }
          }
          return n
        },
        d = function (K, I) {
          for (
            var u = function (e) {
                for (var l = 0, m = 0; m < K.length; m++) {
                  if (e.rules[m] && K[m]) {
                    if (!(K[m].s >= e.rules[m].s && K[m].e <= e.rules[m].e)) {
                      l = 'N/A'
                      break
                    }
                    if (
                      ((l = 0),
                      (l += Math.abs(K[m].s - e.rules[m].s)),
                      (l += Math.abs(e.rules[m].e - K[m].e)),
                      l > B.MAX_SCORE)
                    ) {
                      l = 'N/A'
                      break
                    }
                  }
                }
                return (l = x(K, I, l, e))
              },
              F = {},
              D = b.olson.dst_rules.zones,
              N = D.length,
              E = B.AMBIGUITIES[I],
              M = 0;
            M < N;
            M++
          ) {
            var G = D[M],
              H = u(D[M])
            'N/A' !== H && (F[G.name] = H)
          }
          for (var J in F) {
            if (F.hasOwnProperty(J)) {
              for (var L = 0; L < E.length; L++) {
                if (E[L] === J) {
                  return J
                }
              }
            }
          }
          return I
        },
        w = function (t) {
          var m = function () {
              for (var D = [], A = 0; A < b.olson.dst_rules.years.length; A++) {
                var n = g(b.olson.dst_rules.years[A])
                D.push(n)
              }
              return D
            },
            l = function (A) {
              for (var n = 0; n < A.length; n++) {
                if (A[n] !== !1) {
                  return !0
                }
              }
              return !1
            },
            o = m(),
            u = l(o)
          return u ? d(o, t) : t
        },
        j = function () {
          var l = h()
          return (
            l ||
              ((l = b.olson.timezones[a()]), 'undefined' != typeof B.AMBIGUITIES[l] && (l = w(l))),
            {
              name: function () {
                return l
              },
              stdTimezoneOffset: function () {
                return -a().split(',')[0]
              },
              timezoneOffset: function () {
                return -q(new Date())
              },
            }
          )
        }
      return {
        determine: j,
      }
    })()
    ;(b.olson = b.olson || {}),
      (b.olson.timezones = {
        '-720,0': 'Etc/GMT+12',
        '-660,0': 'Pacific/Pago_Pago',
        '-660,1,s': 'Pacific/Apia',
        '-600,1': 'America/Adak',
        '-600,0': 'Pacific/Honolulu',
        '-570,0': 'Pacific/Marquesas',
        '-540,0': 'Pacific/Gambier',
        '-540,1': 'America/Anchorage',
        '-480,1': 'America/Los_Angeles',
        '-480,0': 'Pacific/Pitcairn',
        '-420,0': 'America/Phoenix',
        '-420,1': 'America/Denver',
        '-360,0': 'America/Guatemala',
        '-360,1': 'America/Chicago',
        '-360,1,s': 'Pacific/Easter',
        '-300,0': 'America/Bogota',
        '-300,1': 'America/New_York',
        '-270,0': 'America/Caracas',
        '-240,1': 'America/Halifax',
        '-240,0': 'America/Santo_Domingo',
        '-240,1,s': 'America/Asuncion',
        '-210,1': 'America/St_Johns',
        '-180,1': 'America/Godthab',
        '-180,0': 'America/Argentina/Buenos_Aires',
        '-180,1,s': 'America/Montevideo',
        '-120,0': 'America/Noronha',
        '-120,1': 'America/Noronha',
        '-60,1': 'Atlantic/Azores',
        '-60,0': 'Atlantic/Cape_Verde',
        '0,0': 'UTC',
        '0,1': 'Europe/London',
        '60,1': 'Europe/Berlin',
        '60,0': 'Africa/Lagos',
        '60,1,s': 'Africa/Windhoek',
        '120,1': 'Asia/Beirut',
        '120,0': 'Africa/Johannesburg',
        '180,0': 'Asia/Baghdad',
        '180,1': 'Europe/Moscow',
        '210,1': 'Asia/Tehran',
        '240,0': 'Asia/Dubai',
        '240,1': 'Asia/Baku',
        '270,0': 'Asia/Kabul',
        '300,1': 'Asia/Yekaterinburg',
        '300,0': 'Asia/Karachi',
        '330,0': 'Asia/Kolkata',
        '345,0': 'Asia/Kathmandu',
        '360,0': 'Asia/Dhaka',
        '360,1': 'Asia/Omsk',
        '390,0': 'Asia/Rangoon',
        '420,1': 'Asia/Krasnoyarsk',
        '420,0': 'Asia/Jakarta',
        '480,0': 'Asia/Shanghai',
        '480,1': 'Asia/Irkutsk',
        '525,0': 'Australia/Eucla',
        '525,1,s': 'Australia/Eucla',
        '540,1': 'Asia/Yakutsk',
        '540,0': 'Asia/Tokyo',
        '570,0': 'Australia/Darwin',
        '570,1,s': 'Australia/Adelaide',
        '600,0': 'Australia/Brisbane',
        '600,1': 'Asia/Vladivostok',
        '600,1,s': 'Australia/Sydney',
        '630,1,s': 'Australia/Lord_Howe',
        '660,1': 'Asia/Kamchatka',
        '660,0': 'Pacific/Noumea',
        '690,0': 'Pacific/Norfolk',
        '720,1,s': 'Pacific/Auckland',
        '720,0': 'Pacific/Majuro',
        '765,1,s': 'Pacific/Chatham',
        '780,0': 'Pacific/Tongatapu',
        '780,1,s': 'Pacific/Apia',
        '840,0': 'Pacific/Kiritimati',
      }),
      (b.olson.dst_rules = {
        years: [2008, 2009, 2010, 2011, 2012, 2013, 2014],
        zones: [
          {
            name: 'Africa/Cairo',
            rules: [
              {
                e: 1219957200000,
                s: 1209074400000,
              },
              {
                e: 1250802000000,
                s: 1240524000000,
              },
              {
                e: 1285880400000,
                s: 1284069600000,
              },
              !1,
              !1,
              !1,
              {
                e: 1411678800000,
                s: 1406844000000,
              },
            ],
          },
          {
            name: 'Africa/Casablanca',
            rules: [
              {
                e: 1220223600000,
                s: 1212278400000,
              },
              {
                e: 1250809200000,
                s: 1243814400000,
              },
              {
                e: 1281222000000,
                s: 1272758400000,
              },
              {
                e: 1312066800000,
                s: 1301788800000,
              },
              {
                e: 1348970400000,
                s: 1345428000000,
              },
              {
                e: 1382839200000,
                s: 1376100000000,
              },
              {
                e: 1414288800000,
                s: 1406944800000,
              },
            ],
          },
          {
            name: 'America/Asuncion',
            rules: [
              {
                e: 1205031600000,
                s: 1224388800000,
              },
              {
                e: 1236481200000,
                s: 1255838400000,
              },
              {
                e: 1270954800000,
                s: 1286078400000,
              },
              {
                e: 1302404400000,
                s: 1317528000000,
              },
              {
                e: 1333854000000,
                s: 1349582400000,
              },
              {
                e: 1364094000000,
                s: 1381032000000,
              },
              {
                e: 1395543600000,
                s: 1412481600000,
              },
            ],
          },
          {
            name: 'America/Campo_Grande',
            rules: [
              {
                e: 1203217200000,
                s: 1224388800000,
              },
              {
                e: 1234666800000,
                s: 1255838400000,
              },
              {
                e: 1266721200000,
                s: 1287288000000,
              },
              {
                e: 1298170800000,
                s: 1318737600000,
              },
              {
                e: 1330225200000,
                s: 1350792000000,
              },
              {
                e: 1361070000000,
                s: 1382241600000,
              },
              {
                e: 1392519600000,
                s: 1413691200000,
              },
            ],
          },
          {
            name: 'America/Goose_Bay',
            rules: [
              {
                e: 1225594860000,
                s: 1205035260000,
              },
              {
                e: 1257044460000,
                s: 1236484860000,
              },
              {
                e: 1289098860000,
                s: 1268539260000,
              },
              {
                e: 1320555600000,
                s: 1299988860000,
              },
              {
                e: 1352005200000,
                s: 1331445600000,
              },
              {
                e: 1383454800000,
                s: 1362895200000,
              },
              {
                e: 1414904400000,
                s: 1394344800000,
              },
            ],
          },
          {
            name: 'America/Havana',
            rules: [
              {
                e: 1224997200000,
                s: 1205643600000,
              },
              {
                e: 1256446800000,
                s: 1236488400000,
              },
              {
                e: 1288501200000,
                s: 1268542800000,
              },
              {
                e: 1321160400000,
                s: 1300597200000,
              },
              {
                e: 1352005200000,
                s: 1333256400000,
              },
              {
                e: 1383454800000,
                s: 1362891600000,
              },
              {
                e: 1414904400000,
                s: 1394341200000,
              },
            ],
          },
          {
            name: 'America/Mazatlan',
            rules: [
              {
                e: 1225008000000,
                s: 1207472400000,
              },
              {
                e: 1256457600000,
                s: 1238922000000,
              },
              {
                e: 1288512000000,
                s: 1270371600000,
              },
              {
                e: 1319961600000,
                s: 1301821200000,
              },
              {
                e: 1351411200000,
                s: 1333270800000,
              },
              {
                e: 1382860800000,
                s: 1365325200000,
              },
              {
                e: 1414310400000,
                s: 1396774800000,
              },
            ],
          },
          {
            name: 'America/Mexico_City',
            rules: [
              {
                e: 1225004400000,
                s: 1207468800000,
              },
              {
                e: 1256454000000,
                s: 1238918400000,
              },
              {
                e: 1288508400000,
                s: 1270368000000,
              },
              {
                e: 1319958000000,
                s: 1301817600000,
              },
              {
                e: 1351407600000,
                s: 1333267200000,
              },
              {
                e: 1382857200000,
                s: 1365321600000,
              },
              {
                e: 1414306800000,
                s: 1396771200000,
              },
            ],
          },
          {
            name: 'America/Miquelon',
            rules: [
              {
                e: 1225598400000,
                s: 1205038800000,
              },
              {
                e: 1257048000000,
                s: 1236488400000,
              },
              {
                e: 1289102400000,
                s: 1268542800000,
              },
              {
                e: 1320552000000,
                s: 1299992400000,
              },
              {
                e: 1352001600000,
                s: 1331442000000,
              },
              {
                e: 1383451200000,
                s: 1362891600000,
              },
              {
                e: 1414900800000,
                s: 1394341200000,
              },
            ],
          },
          {
            name: 'America/Santa_Isabel',
            rules: [
              {
                e: 1225011600000,
                s: 1207476000000,
              },
              {
                e: 1256461200000,
                s: 1238925600000,
              },
              {
                e: 1288515600000,
                s: 1270375200000,
              },
              {
                e: 1319965200000,
                s: 1301824800000,
              },
              {
                e: 1351414800000,
                s: 1333274400000,
              },
              {
                e: 1382864400000,
                s: 1365328800000,
              },
              {
                e: 1414314000000,
                s: 1396778400000,
              },
            ],
          },
          {
            name: 'America/Santiago',
            rules: [
              {
                e: 1206846000000,
                s: 1223784000000,
              },
              {
                e: 1237086000000,
                s: 1255233600000,
              },
              {
                e: 1270350000000,
                s: 1286683200000,
              },
              {
                e: 1304823600000,
                s: 1313899200000,
              },
              {
                e: 1335668400000,
                s: 1346558400000,
              },
              {
                e: 1367118000000,
                s: 1378612800000,
              },
              {
                e: 1398567600000,
                s: 1410062400000,
              },
            ],
          },
          {
            name: 'America/Sao_Paulo',
            rules: [
              {
                e: 1203213600000,
                s: 1224385200000,
              },
              {
                e: 1234663200000,
                s: 1255834800000,
              },
              {
                e: 1266717600000,
                s: 1287284400000,
              },
              {
                e: 1298167200000,
                s: 1318734000000,
              },
              {
                e: 1330221600000,
                s: 1350788400000,
              },
              {
                e: 1361066400000,
                s: 1382238000000,
              },
              {
                e: 1392516000000,
                s: 1413687600000,
              },
            ],
          },
          {
            name: 'Asia/Amman',
            rules: [
              {
                e: 1225404000000,
                s: 1206655200000,
              },
              {
                e: 1256853600000,
                s: 1238104800000,
              },
              {
                e: 1288303200000,
                s: 1269554400000,
              },
              {
                e: 1319752800000,
                s: 1301608800000,
              },
              !1,
              !1,
              {
                e: 1414706400000,
                s: 1395957600000,
              },
            ],
          },
          {
            name: 'Asia/Damascus',
            rules: [
              {
                e: 1225486800000,
                s: 1207260000000,
              },
              {
                e: 1256850000000,
                s: 1238104800000,
              },
              {
                e: 1288299600000,
                s: 1270159200000,
              },
              {
                e: 1319749200000,
                s: 1301608800000,
              },
              {
                e: 1351198800000,
                s: 1333058400000,
              },
              {
                e: 1382648400000,
                s: 1364508000000,
              },
              {
                e: 1414702800000,
                s: 1395957600000,
              },
            ],
          },
          {
            name: 'Asia/Dubai',
            rules: [!1, !1, !1, !1, !1, !1, !1],
          },
          {
            name: 'Asia/Gaza',
            rules: [
              {
                e: 1219957200000,
                s: 1206655200000,
              },
              {
                e: 1252015200000,
                s: 1238104800000,
              },
              {
                e: 1281474000000,
                s: 1269640860000,
              },
              {
                e: 1312146000000,
                s: 1301608860000,
              },
              {
                e: 1348178400000,
                s: 1333058400000,
              },
              {
                e: 1380229200000,
                s: 1364508000000,
              },
              {
                e: 1414098000000,
                s: 1395957600000,
              },
            ],
          },
          {
            name: 'Asia/Irkutsk',
            rules: [
              {
                e: 1224957600000,
                s: 1206813600000,
              },
              {
                e: 1256407200000,
                s: 1238263200000,
              },
              {
                e: 1288461600000,
                s: 1269712800000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Asia/Jerusalem',
            rules: [
              {
                e: 1223161200000,
                s: 1206662400000,
              },
              {
                e: 1254006000000,
                s: 1238112000000,
              },
              {
                e: 1284246000000,
                s: 1269561600000,
              },
              {
                e: 1317510000000,
                s: 1301616000000,
              },
              {
                e: 1348354800000,
                s: 1333065600000,
              },
              {
                e: 1382828400000,
                s: 1364515200000,
              },
              {
                e: 1414278000000,
                s: 1395964800000,
              },
            ],
          },
          {
            name: 'Asia/Kamchatka',
            rules: [
              {
                e: 1224943200000,
                s: 1206799200000,
              },
              {
                e: 1256392800000,
                s: 1238248800000,
              },
              {
                e: 1288450800000,
                s: 1269698400000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Asia/Krasnoyarsk',
            rules: [
              {
                e: 1224961200000,
                s: 1206817200000,
              },
              {
                e: 1256410800000,
                s: 1238266800000,
              },
              {
                e: 1288465200000,
                s: 1269716400000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Asia/Omsk',
            rules: [
              {
                e: 1224964800000,
                s: 1206820800000,
              },
              {
                e: 1256414400000,
                s: 1238270400000,
              },
              {
                e: 1288468800000,
                s: 1269720000000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Asia/Vladivostok',
            rules: [
              {
                e: 1224950400000,
                s: 1206806400000,
              },
              {
                e: 1256400000000,
                s: 1238256000000,
              },
              {
                e: 1288454400000,
                s: 1269705600000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Asia/Yakutsk',
            rules: [
              {
                e: 1224954000000,
                s: 1206810000000,
              },
              {
                e: 1256403600000,
                s: 1238259600000,
              },
              {
                e: 1288458000000,
                s: 1269709200000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Asia/Yekaterinburg',
            rules: [
              {
                e: 1224968400000,
                s: 1206824400000,
              },
              {
                e: 1256418000000,
                s: 1238274000000,
              },
              {
                e: 1288472400000,
                s: 1269723600000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Asia/Yerevan',
            rules: [
              {
                e: 1224972000000,
                s: 1206828000000,
              },
              {
                e: 1256421600000,
                s: 1238277600000,
              },
              {
                e: 1288476000000,
                s: 1269727200000,
              },
              {
                e: 1319925600000,
                s: 1301176800000,
              },
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Australia/Lord_Howe',
            rules: [
              {
                e: 1207407600000,
                s: 1223134200000,
              },
              {
                e: 1238857200000,
                s: 1254583800000,
              },
              {
                e: 1270306800000,
                s: 1286033400000,
              },
              {
                e: 1301756400000,
                s: 1317483000000,
              },
              {
                e: 1333206000000,
                s: 1349537400000,
              },
              {
                e: 1365260400000,
                s: 1380987000000,
              },
              {
                e: 1396710000000,
                s: 1412436600000,
              },
            ],
          },
          {
            name: 'Australia/Perth',
            rules: [
              {
                e: 1206813600000,
                s: 1224957600000,
              },
              !1,
              !1,
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Europe/Helsinki',
            rules: [
              {
                e: 1224982800000,
                s: 1206838800000,
              },
              {
                e: 1256432400000,
                s: 1238288400000,
              },
              {
                e: 1288486800000,
                s: 1269738000000,
              },
              {
                e: 1319936400000,
                s: 1301187600000,
              },
              {
                e: 1351386000000,
                s: 1332637200000,
              },
              {
                e: 1382835600000,
                s: 1364691600000,
              },
              {
                e: 1414285200000,
                s: 1396141200000,
              },
            ],
          },
          {
            name: 'Europe/Minsk',
            rules: [
              {
                e: 1224979200000,
                s: 1206835200000,
              },
              {
                e: 1256428800000,
                s: 1238284800000,
              },
              {
                e: 1288483200000,
                s: 1269734400000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Europe/Moscow',
            rules: [
              {
                e: 1224975600000,
                s: 1206831600000,
              },
              {
                e: 1256425200000,
                s: 1238281200000,
              },
              {
                e: 1288479600000,
                s: 1269730800000,
              },
              !1,
              !1,
              !1,
              !1,
            ],
          },
          {
            name: 'Pacific/Apia',
            rules: [
              !1,
              !1,
              !1,
              {
                e: 1301752800000,
                s: 1316872800000,
              },
              {
                e: 1333202400000,
                s: 1348927200000,
              },
              {
                e: 1365256800000,
                s: 1380376800000,
              },
              {
                e: 1396706400000,
                s: 1411826400000,
              },
            ],
          },
          {
            name: 'Pacific/Fiji',
            rules: [
              !1,
              !1,
              {
                e: 1269698400000,
                s: 1287842400000,
              },
              {
                e: 1327154400000,
                s: 1319292000000,
              },
              {
                e: 1358604000000,
                s: 1350741600000,
              },
              {
                e: 1390050000000,
                s: 1382796000000,
              },
              {
                e: 1421503200000,
                s: 1414850400000,
              },
            ],
          },
          {
            name: 'Europe/London',
            rules: [
              {
                e: 1224982800000,
                s: 1206838800000,
              },
              {
                e: 1256432400000,
                s: 1238288400000,
              },
              {
                e: 1288486800000,
                s: 1269738000000,
              },
              {
                e: 1319936400000,
                s: 1301187600000,
              },
              {
                e: 1351386000000,
                s: 1332637200000,
              },
              {
                e: 1382835600000,
                s: 1364691600000,
              },
              {
                e: 1414285200000,
                s: 1396141200000,
              },
            ],
          },
        ],
      }),
      'undefined' != typeof module && 'undefined' != typeof module.exports
        ? (module.exports = b)
        : 'undefined' != typeof define && null !== define && null != define.amd
          ? define([], function () {
              return b
            })
          : 'undefined' == typeof c
            ? (window.jstz = b)
            : (c.jstz = b)
  })()
  var rand_no5 = Math.floor(Math.random() * 1000 + 1)
  RVIDTrack = 0
  var panelID
  var ajaxCall = true
  var dev2 = false
  var rand_no2 = Math.floor(Math.random() * 100 + 1)
  rand_no2 = 10
  var bObj
  var hasRIF = '0'
  var pih1 = ''
  var fh1 = ''
  var dfCount = 0
  var tempDF = ''
  var newTrack = 0
  var __xe1913148__ = 'rvid_' + Math.floor(Math.random() * 900000).toString()
  var _hpd = 0
  setHoPoDetection(__xe1913148__)
  document.getElementById('RVid').value = 'DIAG_000_' + rand_no5
  newTrack = 1
  var initialManipulableInputValues = getManipulableInputValues()
  if (
    (navigator.appVersion.indexOf('MSIE') != -1 &&
      navigator.appVersion.toLowerCase().indexOf('win') != -1) ||
    navigator.appVersion.toLowerCase().indexOf('trident/7.0') != -1
  ) {
    var s = ''
    s += 'function detectUnityWebPlayerActiveX\r\n'
    s += 'on error resume next\r\n'
    s += 'dim tControl\r\n'
    s += 'dim res\r\n'
    s += 'res = 0\r\n'
    s += 'set tControl = CreateObject("UnityWebPlayer.UnityWebPlayer.1")\r\n'
    s += 'if IsObject(tControl) then\r\n'
    s += 'res = 1\r\n'
    s += 'end if\r\n'
    s += 'detectUnityWebPlayerActiveX = res\r\n'
    s += 'end function\r\n'
    var head1 = document.forms[0] || document.body
    var script11 = document.createElement('script')
    script11.type = 'text/vbscript'
    script11.language = 'VBScript'
    script11.text = s
    head1.appendChild(script11)
  }
  newTrack = 2
  var relevantId = {
    captureObject: (object = {
      Count: 0,
    }),
    RVIDResponseComplete: function () {
      if (relevantId.relevantIdCompletedCallBack) {
        relevantId.relevantIdCompletedCallBack.call()
      }
    },
    callRVIDNow: function () {
      try {
        RVIDTrack = 20
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_x_' + rand_no5
        if (document.getElementById('wm') == null) {
          relevantId.createRVIDField('wm')
        }
        if (document.getElementById('Score') == null) {
          relevantId.createRVIDField('Score')
        }
        if (_RVIDCaptureString == '0' || _RVIDCaptureString == '') {
          setTimeout('relevantId.callRVIDNow1();', 1000)
        } else {
          relevantId.callCaptureNow()
        }
      } catch (a) {
        sendLogMessageAsync('e', 'callRVIDNow: An unhandled error occurred.', a)
        throw a
      }
    },
    callRVIDNow1: function () {
      try {
        RVIDTrack = 21
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_x_' + rand_no5
        if (_RVIDCaptureString == '0' || _RVIDCaptureString == '') {
          setTimeout('relevantId.callRVIDNow2();', 1000)
        } else {
          relevantId.callCaptureNow()
        }
      } catch (a) {
        sendLogMessageAsync('e', 'callRVIDNow1: An unhandled error occurred.', a)
        throw a
      }
    },
    callRVIDNow2: function () {
      try {
        RVIDTrack = 22
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_x_' + rand_no5
        if (_RVIDCaptureString == '0' || _RVIDCaptureString == '') {
          setTimeout('relevantId.callCaptureNow();', 1000)
        } else {
          relevantId.callCaptureNow()
        }
      } catch (a) {
        sendLogMessageAsync('e', 'callRVIDNow2: An unhandled error occurred.', a)
        throw a
      }
    },
    callCaptureNow: function () {
      try {
        RVIDTrack = 23
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_x_' + rand_no5
        if (document.getElementById('wm').value >= 9) {
          document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_1x_' + rand_no5
          relevantId.createSol(_RVIDCaptureString)
        } else {
          document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2x_' + rand_no5
          relevantId.executeService(_RVIDCaptureString)
        }
      } catch (a) {
        sendLogMessageAsync('e', 'callCaptureNow: An unhandled error occurred.', a)
        throw a
      }
    },
    createField: function (a) {
      createRVIDField(a)
    },
    createRVIDField: function (d) {
      if (document.getElementById(d) == null) {
        var c = document
        var b = document.forms[0] || document.body
        if (d == 'DataPoints') {
          var a = c.createElement('textarea')
          a.style.height = '100px'
          a.style.width = '700px'
          a.style.display = 'none'
        } else {
          if (d == 'txtResult') {
            var a = c.createElement('input')
            a.style.height = '20px'
            a.style.width = '400px'
            a.value = ''
            a.style.display = 'none'
          } else {
            var a = c.createElement('input')
            a.style.width = '400px'
            a.type = 'text'
            a.style.display = 'none'
          }
        }
        a = b.appendChild(a)
        a.name = d
        a.id = d
      }
    },
    createOutputFields: function () {
      relevantId.createRVIDField('txtResult')
      if (document.getElementById('Score') == null) {
        relevantId.createRVIDField('Score')
      }
      if (document.getElementById('RVid') == null) {
        relevantId.createRVIDField('RVid')
      }
      relevantId.createRVIDField('isNew')
      relevantId.createRVIDField('Country')
      relevantId.createRVIDField('OldId')
      relevantId.createRVIDField('OldIDDate')
      relevantId.createRVIDField('FirstId')
      relevantId.createRVIDField('FirstIDDate')
      relevantId.createRVIDField('GeoIP')
      relevantId.createRVIDField('CIDFlag')
      relevantId.createRVIDField('TIDFlag')
      relevantId.createRVIDField('CompleteFlag')
      relevantId.createRVIDField('CompleteDate')
      relevantId.createRVIDField('ScreenoutFlag')
      relevantId.createRVIDField('ScreenoutDate')
      relevantId.createRVIDField('TotalCompletes')
      relevantId.createRVIDField('CSOPanelistID')
      relevantId.createRVIDField('CSOPanelistIDDate')
      relevantId.createRVIDField('CSOPanelistIDStatus')
      relevantId.createRVIDField('ClientIP')
      relevantId.createRVIDField('RVIDHash2')
      relevantId.createRVIDField('RVIDHash3')
      relevantId.createRVIDField('RVIDHash4')
      relevantId.createRVIDField('TimeStampHash')
      relevantId.createRVIDField('Domain')
      relevantId.createRVIDField('FraudProfileScore')
      relevantId.createRVIDField('FPF1')
      relevantId.createRVIDField('FPF2')
      relevantId.createRVIDField('FPF3')
      relevantId.createRVIDField('FPF4')
      relevantId.createRVIDField('FPF5')
      relevantId.createRVIDField('FPF6')
      relevantId.createRVIDField('FPF7')
      relevantId.createRVIDField('FPF8')
      relevantId.createRVIDField('FPF9')
      relevantId.createRVIDField('isMobile')
      relevantId.createRVIDField('deviceTime')
      relevantId.createRVIDField('timeZoneDiff')
      relevantId.createRVIDField('FPF10')
      relevantId.createRVIDField('FPF11')
      relevantId.createRVIDField('FPF12')
      relevantId.createRVIDField('FPF13')
      relevantId.createRVIDField('FPF14')
      relevantId.createRVIDField('FPF15')
      relevantId.createRVIDField('FPF16')
      relevantId.createRVIDField('rvid_pt')
      relevantId.createRVIDField('FraudFlagCount')
      relevantId.createRVIDField('udf1')
      relevantId.createRVIDField('IPStatus')
      relevantId.createRVIDField('FraudRiskProbability')
      relevantId.createRVIDField('ManipulatedInputFields')
      relevantId.createRVIDField('CustomFactorFlag')
      relevantId.createRVIDField('CustomFactorPanelistId')
      relevantId.createRVIDField('CustomFactorDate')
      relevantId.createRVIDField('CustomFactorCompleteDate')
    },
    getScore: function (e) {
      try {
        RVIDTrack = 29
        var d = e
        document.getElementById('RVid').value = d.RVid
        document.getElementById('isNew').value = d.IsNew === true ? 'True' : 'False'
        document.getElementById('Score').value = d.Score
        document.getElementById('GeoIP').value = d.GeoIp
        document.getElementById('Country').value = d.Country
        document.getElementById('OldId').value = d.OldId
        document.getElementById('OldIDDate').value = d.OldIdDate
        document.getElementById('CIDFlag').value = d.CIDFlag
        document.getElementById('TIDFlag').value = d.TIDFlag
        document.getElementById('ClientIP').value = d.ClientIP
        document.getElementById('isMobile').value = isThisMobile[0]
        document.getElementById('deviceTime').value = getDateTime()
        document.getElementById('timeZoneDiff').value = getTimeZoneDiff()
        document.getElementById('CompleteFlag').value = d.CompleteFlag == false ? '0' : '1'
        document.getElementById('ScreenoutFlag').value = d.ScreenoutFlag == false ? '0' : '1'
        document.getElementById('CompleteDate').value = d.CompleteDate
        document.getElementById('ScreenoutDate').value = d.ScreenoutDate
        document.getElementById('TotalCompletes').value = d.TotalCompletes
        document.getElementById('CSOPanelistID').value = d.CSOPanID
        document.getElementById('CSOPanelistIDDate').value = d.CSOPanIDDate
        document.getElementById('CSOPanelistIDStatus').value = d.CSOPanIDStatus
        document.getElementById('RVIDHash3').value = d.RVIDHash3
        document.getElementById('RVIDHash4').value = d.RVIDHash4
        document.getElementById('TimeStampHash').value = d.TimeStampHash
        document.getElementById('Domain').value = d.Domain
        document.getElementById('FraudProfileScore').value = d.FraudProfileScore
        addCapValue('browserdatetime', getBrowserTime())
        addCapValue('browserdatetimems', getBrowserTimeMS())
        addCapValue('aol', d.Capture.AOL)
        addCapValue('vbscript', d.Capture.VBScript)
        addCapValue('vbscriptenabled', d.Capture.VBScriptEnabled)
        addCapValue('javaapplets', d.Capture.JavaApplets)
        addCapValue('beta', d.Capture.Beta)
        addCapValue('activexenabled', d.Capture.ActiveXEnabled)
        addCapValue('activexcontrols', d.Capture.ActiveXControls)
        addCapValue('ipaddr', d.ClientIP)
        addCapValue('browser', d.Capture.Browser)
        addCapValue('version', d.Capture.BrowserMajorVersion)
        addCapValue('fullversion', d.Capture.BrowserFullVersion)
        addCapValue('majorver', d.Capture.BrowserMajorVersion)
        addCapValue('minorver', d.Capture.BrowserMinorVersion)
        addCapValue('compressgzip', d.Capture.CompressGZip)
        addCapValue('png', d.Capture.PNG)
        addCapValue('proxy', d.Capture.Proxy)
        addCapValue('proxystring', d.Capture.ProxyString)
        addCapValue('language', d.Capture.Language)
        addCapValue('latitude', d.Capture.Latitude)
        addCapValue('longitude', d.Capture.Longitude)
        addCapValue('country', d.Country)
        addCapValue('countryname', d.Country)
        addCapValue('countrycode', d.Country)
        addCapValue('region', d.Region)
        addCapValue('city', d.City)
        addCapValue('org', d.Capture.Org)
        addCapValue('sslkeysize', d.Capture.SSLKeySize)
        addCapValue('sslenabled', d.Capture.SSLEnabled)
        isMobile1(d.Capture.DeviceType)
        addCapValue('hdml', d.Capture.HDML)
        addCapValue('mobiledevicemanufacturer', d.Capture.MobileDeviceManufacturer)
        addCapValue('mobilecharheightavail', d.Capture.MobileCharHeightAvail)
        addCapValue('mobilecharwidthavail', d.Capture.MobileCharWidthAvail)
        addCapValue('pda', d.Capture.PDA)
        addCapValue('devicetype', d.Capture.DeviceType)
        addCapValue('mobileorientation', d.Capture.MobileOrientation)
        addCapValue('wap', d.Capture.WAP)
        addCapValue('wapdevicemodel', d.Capture.WAPDeviceModel)
        addCapValue('wapgateway', d.Capture.WAPGateway)
        addCapValue('wapmaxdecksize', d.Capture.WAPMaxDeckDize)
        addCapValue('wapsubscriberid', d.Capture.WAPSubscriberId)
        addCapValue('machinetime', d.Capture.MachineTime)
        addCapValue('mobiledevicemodel', d.Capture.MobileDeviceModel)
        addCapValue('hardwareconcurrency', d.Capture.HardwareConcurrency)
        addCapValue('devicememory', d.Capture.DeviceMemory)
        addCapValue('ipclassificationtypeid', d.Capture.IPClassificationTypeID)
        if (
          relevantId.captureObject.platform.startsWith('Windows 10') &&
          d.Capture.PlatformFull.startsWith('Windows 11')
        ) {
          relevantId.captureObject.platform = d.Capture.PlatformFull
        }
        for (var b = 16; b <= d.FraudFlags.length; b++) {
          relevantId.createRVIDField('FPF' + b)
        }
        for (var c = 1; c <= d.FraudFlags.length; c++) {
          document.getElementById('FPF' + c.toString()).value = d.FraudFlags.substring(c - 1, c)
        }
        if (document.getElementById('FPF16')) {
          document.getElementById('FPF16').value = '0'
        }
        document.getElementById('rvid_pt').value = d.pt
        document.getElementById('FraudFlagCount').value = d.FraudFlagCount
        document.getElementById('udf1').value = d.udf1
        document.getElementById('RVIDHash2').value = d.RVIDHash2
        document.getElementById('FirstId').value = d.FirstId || '0'
        document.getElementById('FirstIDDate').value = d.FirstIdDate || '1/1/0001 12:00:00 AM'
        document.getElementById('IPStatus').value = d.IPStatus
        document.getElementById('FraudRiskProbability').value = d.FraudRiskProbability
        document.getElementById('CustomFactorFlag').value = d.CustomFactorFlag
        document.getElementById('CustomFactorPanelistId').value = d.CustomFactorPanelistId
        document.getElementById('CustomFactorDate').value = d.CustomFactorDate
        document.getElementById('CustomFactorCompleteDate').value = d.CustomFactorCompleteDate
        RVIDTrack = 30
        relevantId.writeRIF(d.RVid)
        RVIDTrack = 31
        relevantId.RVIDResponseComplete()
      } catch (a) {
        sendLogMessageAsync('e', 'getScore: An unhandled error occurred.', a)
        throw a
      }
    },
    executeService: function (j) {
      try {
        RVIDTrack = 24
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_1x_' + rand_no5
        relevantId.createOutputFields()
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2x_' + rand_no5
        document.getElementById('RVid').value = '0'
        document.getElementById('Score').value = '-1'
        document.getElementById('Score').value = RVIDTrack
        if (j == null || j == undefined || j == '' || j == '0') {
          RVIDTrack = 25
          sendLogMessageAsync('w', 'executeService: propString is empty or undefined')
          relevantId.RVIDResponseComplete()
        } else {
          setTimeout(function () {
            if (RVIDTrack != 31) {
              sendLogMessageAsync('i', 'executeService: Call has not completed within 5 seconds')
            }
          }, 5000)
          LogWarningForAnyMissingRequestPars()
          try {
            document.getElementById('ClientIP').value = j.split('|')[35]
          } catch (h) {}
          RVIDTrack = 26
          var d = getManipulatedInputFields(
            initialManipulableInputValues,
            getManipulableInputValues(),
          )
          document.getElementById('ManipulatedInputFields').value = d
          document.getElementById('Score').value = RVIDTrack
          var b = relevantId.readRIF()
          RVIDTrack = 27
          document.getElementById('Score').value = RVIDTrack
          var n = document.getElementById('PanelistID').value
          var m = document.getElementById('SurveyID').value
          var p = document.getElementById('GeoCodes').value
          var w = document.getElementById('ClientID').value
          var l = document.getElementById('CID').value
          var u = document.getElementById('TID').value
          var c = '21'
          if (
            document.getElementById('TimePeriod') &&
            !isNaN(document.getElementById('TimePeriod').value)
          ) {
            c = document.getElementById('TimePeriod').value || c
          }
          var o = ''
          var x = ''
          var a = '0'
          var t = null
          if (document.getElementById('panelID') != null) {
            o = document.getElementById('panelID').value
          }
          if (document.getElementById('PanelID') != null) {
            o = document.getElementById('PanelID').value
          }
          if (document.getElementById('VID') != null) {
            x = document.getElementById('VID').value
          }
          if (document.getElementById('MembershipTenure') != null) {
            a = document.getElementById('MembershipTenure').value
          }
          if (document.getElementById('CustomFactor') != null) {
            t = document.getElementById('CustomFactor').value
          }
          if (j.substr(j.length - 1, 1) == '|') {
            j = j.substr(0, j.length - 1)
          }
          propertyString1 = j
          if (
            m != null &&
            m != '' &&
            m != undefined &&
            w != null &&
            w != '' &&
            w != 'undefined' &&
            w != undefined
          ) {
            if (n == '') {
              n = '0'
            }
            if (document.getElementById(__xe1913148__).value !== '_') {
              _hpd = 1
            }
            if (
              document.getElementById('RequestCSOData') &&
              document.getElementById('RequestCSOData').value == '1'
            ) {
              l = '999'
            }
            var v = RVIDPrivacy.GetStorage()
            var e = {
              PropertyList: j,
              CachedExternalId: b,
              SurveyId: m,
              PanelistId: n,
              PanelId: o,
              GeoCodes: p,
              MachineTime: _extraDataPoints.MachineTime,
              IANATimeZone: _extraDataPoints.IANATimeZone,
              CID: l,
              TID: u,
              CSOTimePeriodSeconds: c,
              VID: x,
              CanvasId: _extraDataPoints.CanvasId,
              CanvasHash: _extraDataPoints.CanvasHash,
              PluginList: _extraDataPoints.PluginList,
              WebGLRenderer: _extraDataPoints.WebGLRenderer,
              MembershipTenure: a,
              HoneyPotFlagTriggered: _hpd !== 0 ? 1 : 0,
              HardwareConcurrency: navigator.hardwareConcurrency,
              FileSystemRequest: v.filesystem,
              IndexDb: v.indexdb,
              LocalStorage: v.localStorage,
              RIFFlag: rifFlag,
              CookieTampered: 0,
              ManipulatedInputFields: [],
              NavigatorPlatform: navigator.platform,
              CustomFactor: t,
              WebGLDataHash: _extraDataPoints.WebGLDataHash,
              DeviceMemory: navigator.deviceMemory,
              MaxTouchPoints: navigator.maxTouchPoints,
              WebDriver: navigator.webdriver,
              HasCypress: !!window.Cypress,
              HistoryLength: window.history ? window.history.length : null,
              InIFrame: _extraDataPoints.InIFrame,
              FeatDetectedBrowser: _extraDataPoints.FeatDetectedBrowser,
              PageTranslated: IsPageTranslated(),
              DevicePixelRatio: window.devicePixelRatio,
              NavigatorUserAgent: _extraDataPoints.NavigatorUserAgent,
              NavigatorLanguages: _extraDataPoints.NavigatorLanguages || [],
              AutomatedBrowserProps: _extraDataPoints.AutomatedBrowserProps || [],
              NotificationPermissions:
                _extraDataPoints.NotificationPermissions !== undefined
                  ? _extraDataPoints.NotificationPermissions
                  : null,
              EvalLength: _extraDataPoints.EvalLength,
              NetworkDownlink: navigator.connection ? navigator.connection.downlink : null,
              NetworkEffectiveType: navigator.connection
                ? navigator.connection.effectiveType
                : null,
              NetworkRoundTripTime: navigator.connection ? navigator.connection.rtt : null,
              KeyboardLayoutMapSize:
                _extraDataPoints.KeyboardLayoutMapSize !== undefined
                  ? _extraDataPoints.KeyboardLayoutMapSize
                  : null,
              MediaDevicesConstraintsCount: _extraDataPoints.MediaDevicesConstraintsCount,
              SupportsBluetooth:
                _extraDataPoints.SupportsBluetooth !== undefined
                  ? _extraDataPoints.SupportsBluetooth
                  : null,
              StorageManagerQuotaBytes:
                _extraDataPoints.StorageManagerQuotaBytes !== undefined
                  ? _extraDataPoints.StorageManagerQuotaBytes
                  : null,
              StorageManagerUsageBytes:
                _extraDataPoints.StorageManagerUsageBytes !== undefined
                  ? _extraDataPoints.StorageManagerUsageBytes
                  : null,
              NavUAHintBrands:
                _extraDataPoints.NavUAHintBrands !== undefined
                  ? _extraDataPoints.NavUAHintBrands
                  : null,
              NavUAHintBrowserFullVersion:
                _extraDataPoints.NavUAHintBrowserFullVersion !== undefined
                  ? _extraDataPoints.NavUAHintBrowserFullVersion
                  : null,
              NavUAHintBrowserFullVersionList:
                _extraDataPoints.NavUAHintBrowserFullVersionList !== undefined
                  ? _extraDataPoints.NavUAHintBrowserFullVersionList
                  : null,
              NavUAHintPlatform:
                _extraDataPoints.NavUAHintPlatform !== undefined
                  ? _extraDataPoints.NavUAHintPlatform
                  : null,
              NavUAHintPlatformVersion:
                _extraDataPoints.NavUAHintPlatformVersion !== undefined
                  ? _extraDataPoints.NavUAHintPlatformVersion
                  : null,
              NavUAHintModel:
                _extraDataPoints.NavUAHintModel !== undefined
                  ? _extraDataPoints.NavUAHintModel
                  : null,
              NavUAHintArchitecture:
                _extraDataPoints.NavUAHintArchitecture !== undefined
                  ? _extraDataPoints.NavUAHintArchitecture
                  : null,
              NavUAHintMobile:
                _extraDataPoints.NavUAHintMobile !== undefined
                  ? _extraDataPoints.NavUAHintMobile
                  : null,
              HasAccelerometer:
                _extraDataPoints.HasAccelerometer !== undefined
                  ? _extraDataPoints.HasAccelerometer
                  : null,
              HasGyroscope:
                _extraDataPoints.HasGyroscope !== undefined ? _extraDataPoints.HasGyroscope : null,
              AudioSampleRate: _extraDataPoints.AudioSampleRate,
              MediaDeviceGroups:
                _extraDataPoints.MediaDeviceGroups !== undefined
                  ? _extraDataPoints.MediaDeviceGroups
                  : {},
              JSPrivacyDetect:
                _extraDataPoints.JSPrivacyDetect !== undefined
                  ? _extraDataPoints.JSPrivacyDetect
                  : 2,
              MimeTypes: _extraDataPoints.MimeTypes,
              OuterWidth: window.outerWidth,
              OuterHeight: window.outerHeight,
              DevToolsOpen: _extraDataPoints.DevToolsOpen,
              JSVersion: _version,
            }
            var g = 'https://rvid.imperium.com/dedupe'
            ImperiumXhrPost(g, 'X-ClientID', w, e, getScore)
            RVIDTrack = 43
            document.getElementById('Score').value = RVIDTrack
            if (b != '' && b != '0' && b != null && b != undefined && b != 'null' && b != '100') {
              document.getElementById('RVid').value = b
            }
          } else {
            sendLogMessageAsync('w', 'executeService: SurveyID or ClientID undefined')
            document.getElementById('RVid').value = '0'
            document.getElementById('txtResult').value = 'Required parameters missing'
            document.getElementById('Score').value = '-1'
            relevantId.RVIDResponseComplete()
          }
        }
      } catch (q) {
        sendLogMessageAsync('e', 'executeService: An unhandled error occurred.', q)
        throw q
      }
    },
    checkTime: function (a) {
      if (a < 10) {
        a = '0' + a
      }
      return a
    },
    AddScriptTag: function (a) {
      var c = document.forms[0] || document.body
      var b = document.createElement('script')
      b.type = 'text/javascript'
      b.src = a
      b.onerror = function (e) {
        var g = new Date()
        sendLogMessageAsync(
          'e',
          'A server side error occurred (Elapsed Time: ' +
            (g - d) +
            'ms); ' +
            encodeURIComponent(a),
        )
      }
      var d = new Date()
      c.appendChild(b)
    },
    RIFStatusServiceComplete: function (a) {
      RVIDTrack = 36
    },
    executeRIFStatusService: function (a) {
      RVIDTrack = 35
      relevantId.RIFStatusServiceComplete({
        ResultSet: {
          Result: [
            {
              AckFlag: '',
            },
          ],
        },
      })
      relevantId.RVIDResponseComplete()
    },
    createDiv: function () {
      var b = document.createElement('div')
      b.id = 'rvidF'
      b.setAttribute('align', 'center')
      b.style.margin = '0px auto'
      var a = document.forms[0] || document.body
      a.appendChild(b)
    },
    createSol: function (b) {
      try {
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3x_' + rand_no5
        relevantId.createDiv()
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_4x_' + rand_no5
        var d = new objectSWF(
          'https://d3op16id4dloxg.cloudfront.net/dedupe.swf',
          'dedupe',
          '1',
          '1',
          '9',
          '#FFFFFF',
        )
        d.addParam('allowScriptAccess', 'always')
        d.write('rvidF')
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_5x_' + rand_no5
      } catch (c) {}
      propLength = 0
      if (b == null || b == undefined || b == '' || b == '0') {
        propLength = 999
      } else {
        propLength = b.length
      }
      document.getElementById('RVid').value =
        'DIAG_' + RVIDTrack + '_6_' + propLength + 'x_' + rand_no5
      var a = setTimeout("relevantId.executeService('" + b + "');", 300)
      document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_6wx_' + rand_no5
    },
    writeRIF: function (a) {
      relevantId.setRIF1(a)
      relevantId.setRIF2(a)
      relevantId.setRIF3(a)
    },
    setRIF1: function (a) {},
    setRIF2: function (c) {
      try {
        var b = new ZZZ.Store('rid', {
          expires: 365,
        })
        b.set('id', c)
      } catch (a) {}
    },
    readRIF: function () {
      var b = ''
      rifFlag = 0
      if (b == '0') {
        b = ''
      }
      if (b == '') {
        try {
          var a = new ZZZ.Store('rid')
          a.get('id', function (d, e) {
            if (d) {
              if (e != '' && e != '0' && e != 'null' && e != null && e != undefined && e != '100') {
                b = e
                relevantId.setRIF1(b)
                relevantId.setRIF3(b)
                hasRIF = '1'
                rifFlag = 2
              } else {
                b = ''
              }
            } else {
              b = ''
            }
          })
        } catch (c) {
          b = ''
        }
      }
      if (b == '0') {
        b = ''
      }
      if (b == '') {
        try {
          b = relevantId.getRIF3()
          if (b != '' && b != '0' && b != null && b != undefined && b != 'null' && b != '100') {
            hasRIF = '1'
            relevantId.setRIF1(b)
            relevantId.setRIF2(b)
            rifFlag = 3
          }
        } catch (c) {
          b = ''
        }
      }
      if (b == '0') {
        b = ''
      }
      return b
    },
    rifStatusCheck: function () {
      return '0'
    },
    Get_CookieRIF3: function (c) {
      var d = document.cookie.indexOf(c + '=')
      var a = d + c.length + 1
      if (!d && c != document.cookie.substring(0, c.length)) {
        return null
      }
      if (d == -1) {
        return null
      }
      var b = document.cookie.indexOf(';', a)
      if (b == -1) {
        b = document.cookie.length
      }
      return unescape(document.cookie.substring(a, b))
    },
    Set_CookieRIF3: function (d, g, j, e, h) {
      try {
        var b = new Date()
        var a = new Date(b.getTime() + 365 * 24 * 60 * 60 * 1000)
        document.cookie =
          d +
          '=' +
          escape(g) +
          (window.location.protocol != 'http:' ? '; SameSite=none; secure' : '') +
          (a ? ';expires=' + a.toGMTString() : '') +
          (j ? ';path=' + j : '') +
          (e ? ';domain=' + e : '')
      } catch (c) {}
    },
    setRIF3: function (b) {
      try {
        relevantId.Set_CookieRIF3('RVIDExtId', b)
      } catch (a) {}
    },
    getRIF3: function () {
      var a = relevantId.Get_CookieRIF3('RVIDExtId')
      if (a != null) {
        return a
      } else {
        return '0'
      }
    },
  }

  function LogWarningForAnyMissingRequestPars() {
    LogWarningForMissingRequestPar('ClientID')
    LogWarningForMissingRequestPar('SurveyID')
    if (document.getElementById('PanelistID') == undefined) {
      sendLogMessageAsync('w', 'PanelistID request field is missing')
    }
  }

  function LogWarningForMissingRequestPar(b) {
    if (!document.getElementById(b)) {
      sendLogMessageAsync('w', b + ' request field is missing')
    } else {
      var a = document.getElementById(b).value
      if (a === '' || a === null || a === undefined) {
        sendLogMessageAsync('w', b + ' has an empty value')
      }
    }
  }

  function getFunctionHash(b) {
    if (!b || !b.toString) {
      return ''
    }
    try {
      return sha256(b.toString())
    } catch (a) {
      sendLogMessageAsync('e', 'getFunctionHash: An unhandled error occurred', a)
      return ''
    }
  }

  function ImperiumXhrPost(b, a, d, e, g) {
    var c = createRVIDXMLHttpRequest()
    c.open('POST', b)
    c.setRequestHeader('Content-Type', 'application/json')
    c.setRequestHeader(a, d)
    if ('onload' in c) {
      c.onload = function () {
        if (c.status != 200) {
          sendLogMessageAsync('e', 'HTTP ' + c.status + ': ' + c.responseText)
        } else {
          g(JSON.parse(c.responseText))
        }
      }
    } else {
      c.onreadystatechange = function () {
        if (c.readyState == 4) {
          if (c.status != 200) {
            sendLogMessageAsync('e', 'HTTP ' + c.status + ': ' + c.responseText)
          } else {
            g(JSON.parse(c.responseText))
          }
        }
      }
    }
    c.send(JSON.stringify(e))
  }
  newTrack = 3
  var swfobject = (function () {
    var m = 'undefined',
      u = 'object',
      q = 'Shockwave Flash',
      g = 'application/x-shockwave-flash',
      c = window,
      e = document,
      v = navigator,
      h = [],
      j = [],
      d = (function () {
        var n =
            typeof e.getElementById != m &&
            typeof e.getElementsByTagName != m &&
            typeof e.createElement != m,
          o = v.userAgent.toLowerCase(),
          a = v.platform.toLowerCase(),
          z = /win/.test(a || o),
          t = /mac/.test(a || o),
          D = !!/webkit/.test(o) && parseFloat(o.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, '$1')),
          B = !1,
          E = [0, 0, 0],
          b = null
        if (typeof v.plugins != m && typeof v.plugins[q] == u) {
          !(b = v.plugins[q].description) ||
            (typeof v.mimeTypes != m && v.mimeTypes[g] && !v.mimeTypes[g].enabledPlugin) ||
            (!0,
            (B = !1),
            (b = b.replace(/^.*\s+(\S+\s+\S+$)/, '$1')),
            (E[0] = parseInt(b.replace(/^(.*)\..*$/, '$1'), 10)),
            (E[1] = parseInt(b.replace(/^.*\.(.*)\s.*$/, '$1'), 10)),
            (E[2] = /[a-zA-Z]/.test(b) ? parseInt(b.replace(/^.*[a-zA-Z]+(.*)$/, '$1'), 10) : 0))
        } else {
          if (typeof c.ActiveXObject != m) {
            try {
              var A = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')
              A &&
                (b = A.GetVariable('$version')) &&
                ((B = !0),
                (b = b.split(' ')[1].split(',')),
                (E = [parseInt(b[0], 10), parseInt(b[1], 10), parseInt(b[2], 10)]))
            } catch (x) {}
          }
        }
        return {
          w3: n,
          pv: E,
          wk: D,
          ie: B,
          win: z,
          mac: t,
        }
      })()
    d.ie &&
      d.win &&
      window.attachEvent &&
      window.attachEvent('onunload', function () {
        for (var w = j.length, l = 0; l < w; l++) {
          j[l][0].detachEvent(j[l][1], j[l][2])
        }
        for (var b = h.length, z = 0; z < b; z++) {
          y(h[z])
        }
        for (var p in d) {
          d[p] = null
        }
        for (var x in ((d = null), swfobject)) {
          swfobject[x] = null
        }
        swfobject = null
      })
    return {
      ua: d,
      getFlashPlayerVersion: function () {
        return {
          major: d.pv[0],
          minor: d.pv[1],
          release: d.pv[2],
        }
      },
    }
  })()
  newTrack = 4
  if (document.getElementById('panelID') != null) {
    panelID = document.getElementById('panelID').value
  } else {
    panelID = ''
  }
  RVIDTrack = 1
  RVIDTrack = 2
  var PluginDetect = {
    version: '0.7.4',
    handler: function (g, d, e) {
      return function () {
        g(d, e)
      }
    },
    isDefined: function (a) {
      return typeof a != 'undefined'
    },
    isArray: function (a) {
      return /array/i.test(Object.prototype.toString.call(a))
    },
    isFunc: function (a) {
      return typeof a == 'function'
    },
    isString: function (a) {
      return typeof a == 'string'
    },
    isNum: function (a) {
      return typeof a == 'number'
    },
    isStrNum: function (a) {
      return typeof a == 'string' && /\d/.test(a)
    },
    getNumRegx: /[\d][\d\.\_,-]*/,
    splitNumRegx: /[\.\_,-]/g,
    getNum: function (e, j) {
      var h = this,
        g = h.isStrNum(e) ? (h.isDefined(j) ? new RegExp(j) : h.getNumRegx).exec(e) : null
      return g ? g[0] : null
    },
    compareNums: function (m, o, q) {
      var p = this,
        t,
        j,
        l,
        n = parseInt
      if (p.isStrNum(m) && p.isStrNum(o)) {
        if (p.isDefined(q) && q.compareNums) {
          return q.compareNums(m, o)
        }
        t = m.split(p.splitNumRegx)
        j = o.split(p.splitNumRegx)
        for (l = 0; l < Math.min(t.length, j.length); l++) {
          if (n(t[l], 10) > n(j[l], 10)) {
            return 1
          }
          if (n(t[l], 10) < n(j[l], 10)) {
            return -1
          }
        }
      }
      return 0
    },
    formatNum: function (g, m) {
      var l = this,
        h,
        j
      if (!l.isStrNum(g)) {
        return null
      }
      if (!l.isNum(m)) {
        m = 4
      }
      m--
      j = g.replace(/\s/g, '').split(l.splitNumRegx).concat(['0', '0', '0', '0'])
      for (h = 0; h < 4; h++) {
        if (/^(0+)(.+)$/.test(j[h])) {
          j[h] = RegExp.$2
        }
        if (h > m || !/\d/.test(j[h])) {
          j[h] = '0'
        }
      }
      return j.slice(0, 4).join(',')
    },
    $$hasMimeType: function (b) {
      return function (j) {
        if (!b.isIE) {
          var l,
            a,
            h,
            g = b.isString(j) ? [j] : j
          for (h = 0; h < g.length; h++) {
            if (
              /[^\s]/.test(g[h]) &&
              (l = navigator.mimeTypes[g[h]]) &&
              (a = l.enabledPlugin) &&
              (a.name || a.description)
            ) {
              return l
            }
          }
        }
        return null
      }
    },
    findNavPlugin: function (o, w, z) {
      var q = this,
        t = new RegExp(o, 'i'),
        x = !q.isDefined(w) || w ? /\d/ : 0,
        p = z ? new RegExp(z, 'i') : 0,
        B = navigator.plugins,
        u = '',
        v,
        A,
        n
      for (v = 0; v < B.length; v++) {
        n = B[v].description || u
        A = B[v].name || u
        if (
          (t.test(n) && (!x || x.test(RegExp.leftContext + RegExp.rightContext))) ||
          (t.test(A) && (!x || x.test(RegExp.leftContext + RegExp.rightContext)))
        ) {
          if (!p || !(p.test(n) || p.test(A))) {
            return B[v]
          }
        }
      }
      return null
    },
    getMimeEnabledPlugin: function (h, j) {
      var l = this,
        g,
        m = new RegExp(j, 'i')
      if (
        (g = l.hasMimeType(h)) &&
        (g = g.enabledPlugin) &&
        (m.test(g.description || '') || m.test(g.name || ''))
      ) {
        return g
      }
      return 0
    },
    getPluginFileVersion: function (o, j) {
      var m = this,
        p,
        q,
        n,
        l,
        t = -1
      if (m.OS > 2 || !o || !o.version || !(p = m.getNum(o.version))) {
        return j
      }
      if (!j) {
        return p
      }
      p = m.formatNum(p)
      j = m.formatNum(j)
      q = j.split(m.splitNumRegx)
      n = p.split(m.splitNumRegx)
      for (l = 0; l < q.length; l++) {
        if (t > -1 && l > t && q[l] != '0') {
          return j
        }
        if (n[l] != q[l]) {
          if (t == -1) {
            t = l
          }
          if (q[l] != '0') {
            return j
          }
        }
      }
      return p
    },
    AXO: window.ActiveXObject,
    getAXO: function (g) {
      var h = null,
        j,
        e = this
      try {
        h = new e.AXO(g)
      } catch (j) {}
      return h
    },
    convertFuncs: function (m) {
      var j,
        l,
        n,
        e = /^[\$][\$]/,
        o = {},
        p = this
      for (j in m) {
        if (e.test(j)) {
          o[j] = 1
        }
      }
      for (j in o) {
        try {
          l = j.slice(2)
          if (l.length > 0 && !m[l]) {
            m[l] = m[j](m)
            delete m[j]
          }
        } catch (n) {}
      }
    },
    initScript: function () {
      var q = this,
        u = navigator,
        p = '/',
        l = u.userAgent || '',
        n = u.vendor || '',
        t = u.platform || '',
        m = u.product || ''
      q.OS = /win/i.test(t) ? 1 : /mac/i.test(t) ? 2 : /linux/i.test(t) ? 3 : 4
      q.convertFuncs(q)
      q.isIE = new Function('return ' + p + '*@cc_on!@*' + p + 'false')()
      q.verIE = q.isIE && /MSIE\s*(\d+\.?\d*)/i.test(l) ? parseFloat(RegExp.$1, 10) : null
      q.ActiveXEnabled = false
      if (q.isIE) {
        var o,
          j = [
            'Msxml2.XMLHTTP',
            'Msxml2.DOMDocument',
            'Microsoft.XMLDOM',
            'ShockwaveFlash.ShockwaveFlash',
            'TDCCtl.TDCCtl',
            'Shell.UIHelper',
            'Scripting.Dictionary',
            'wmplayer.ocx',
          ]
        for (o = 0; o < j.length; o++) {
          if (q.getAXO(j[o])) {
            q.ActiveXEnabled = true
            break
          }
        }
        q.head = q.isDefined(document.getElementsByTagName)
          ? document.getElementsByTagName('head')[0]
          : null
      }
      q.isGecko = /Gecko/i.test(m) && /Gecko\s*\/\s*\d/i.test(l)
      q.verGecko = q.isGecko
        ? q.formatNum(/rv\s*\:\s*([\.\,\d]+)/i.test(l) ? RegExp.$1 : '0.9')
        : null
      q.isSafari = /Safari\s*\/\s*\d/i.test(l) && /Apple/i.test(n)
      q.isChrome = /Chrome\s*\/\s*(\d[\d\.]*)/i.test(l)
      q.verChrome = q.isChrome ? q.formatNum(RegExp.$1) : null
      q.isOpera = /Opera\s*[\/]?\s*(\d+\.?\d*)/i.test(l)
      q.verOpera =
        q.isOpera && (/Version\s*\/\s*(\d+\.?\d*)/i.test(l) || 1) ? parseFloat(RegExp.$1, 10) : null
    },
    init: function (g) {
      var d = this,
        e,
        g
      if (!d.isString(g)) {
        return -3
      }
      if (g.length == 1) {
        d.getVersionDelimiter = g
        return -3
      }
      g = g.toLowerCase().replace(/\s/g, '')
      e = d[g]
      if (!e || !e.getVersion) {
        return -3
      }
      d.plugin = e
      if (!d.isDefined(e.installed)) {
        e.installed = e.version = e.version0 = e.getVersionDone = null
        e.$ = d
        e.pluginName = g
      }
      d.garbage = false
      if (d.isIE && !d.ActiveXEnabled) {
        if (e !== d.java) {
          return -2
        }
      }
      return 1
    },
    $$isMinVersion: function (b) {
      return function (j, l, o, p) {
        var n = b.init(j),
          m,
          a = -1
        if (n < 0) {
          return n
        }
        m = b.plugin
        l = b.formatNum(b.isNum(l) ? l.toString() : b.isStrNum(l) ? b.getNum(l) : '0')
        if (m.getVersionDone != 1) {
          m.getVersion(o, p)
          if (m.getVersionDone === null) {
            m.getVersionDone = 1
          }
        }
        b.cleanup()
        if (m.installed !== null) {
          a =
            m.installed <= 0.5
              ? m.installed
              : m.version === null
                ? 0
                : b.compareNums(m.version, l, m) >= 0
                  ? 1
                  : -1
        }
        return a
      }
    },
    getVersionDelimiter: ',',
    $$getVersion: function (b) {
      return function (h, m, n) {
        var l = b.init(h),
          j,
          a
        if (l < 0) {
          return null
        }
        j = b.plugin
        if (j.getVersionDone != 1) {
          j.getVersion(m, n)
          if (j.getVersionDone === null) {
            j.getVersionDone = 1
          }
        }
        b.cleanup()
        a = j.version || j.version0
        return a ? a.replace(b.splitNumRegx, b.getVersionDelimiter) : a
      }
    },
    cleanup: function () {},
    flash: {
      mimeType: ['application/x-shockwave-flash', 'application/futuresplash'],
      progID: 'ShockwaveFlash.ShockwaveFlash',
      classID: 'clsid:D27CDB6E-AE6D-11CF-96B8-444553540000',
      getVersion: function () {
        var t = function (a) {
          if (!a) {
            return null
          }
          var b = /[\d][\d\,\.\s]*[rRdD]{0,1}[\d\,]*/.exec(a)
          return b ? b[0].replace(/[rRdD\.]/g, ',').replace(/\s/g, '') : null
        }
        var p,
          m = this,
          o = m.$,
          l,
          n,
          e = null,
          q = null,
          u = null
        if (!o.isIE) {
          p = o.findNavPlugin('Flash')
          if (p && p.description && o.hasMimeType(m.mimeType)) {
            e = t(p.description)
          }
          if (e) {
            e = o.getPluginFileVersion(p, e)
          }
        } else {
          for (n = 15; n > 2; n--) {
            q = o.getAXO(m.progID + '.' + n)
            if (q) {
              u = n.toString()
              break
            }
          }
          if (u == '6') {
            try {
              q.AllowScriptAccess = 'always'
            } catch (l) {
              return '6,0,21,0'
            }
          }
          try {
            e = t(q.GetVariable('$version'))
          } catch (l) {}
          if (!e && u) {
            e = u
          }
        }
        m.installed = e ? 1 : -1
        m.version = o.formatNum(e)
        return true
      },
    },
    shockwave: {
      mimeType: 'application/x-director',
      progID: 'SWCtl.SWCtl',
      classID: 'clsid:166B1BCA-3F9C-11CF-8075-444553540000',
      getVersion: function () {
        var h = null,
          e = null,
          j,
          l,
          m = this,
          n = m.$
        if (!n.isIE) {
          l = n.findNavPlugin('Shockwave\\s*for\\s*Director')
          if (l && l.description && n.hasMimeType(m.mimeType)) {
            h = n.getNum(l.description)
          }
          if (h) {
            h = n.getPluginFileVersion(l, h)
          }
        } else {
          try {
            e = n.getAXO(m.progID).ShockwaveVersion('')
          } catch (j) {}
          if (n.isString(e) && e.length > 0) {
            h = n.getNum(e)
          } else {
            if (n.getAXO(m.progID + '.8')) {
              h = '8'
            } else {
              if (n.getAXO(m.progID + '.7')) {
                h = '7'
              } else {
                if (n.getAXO(m.progID + '.1')) {
                  h = '6'
                }
              }
            }
          }
        }
        m.installed = h ? 1 : -1
        m.version = n.formatNum(h)
      },
    },
    silverlight: {
      mimeType: 'application/x-silverlight',
      progID: 'AgControl.AgControl',
      digits: [9, 20, 9, 12, 31],
      getVersion: function () {
        var G = this,
          H = G.$,
          z = document,
          B = null,
          I = null,
          F = null,
          D = true,
          J = [1, 0, 1, 1, 1],
          K = [1, 0, 1, 1, 1],
          A = function (a) {
            return (a < 10 ? '0' : '') + a.toString()
          },
          v = function (e, g, b, a, c) {
            return e + '.' + g + '.' + b + A(a) + A(c) + '.0'
          },
          t = function (b, c, a) {
            return d(
              b,
              c == 0 ? a : K[0],
              c == 1 ? a : K[1],
              c == 2 ? a : K[2],
              c == 3 ? a : K[3],
              c == 4 ? a : K[4],
            )
          },
          d = function (b, e, g, h, a, c) {
            var c
            try {
              return b.IsVersionSupported(v(e, g, h, a, c))
            } catch (c) {}
            return false
          }
        if (!H.isIE) {
          var E
          if (H.hasMimeType(G.mimeType)) {
            E = H.isGecko && H.compareNums(H.verGecko, H.formatNum('1.6')) <= 0
            if (H.isGecko && E) {
              D = false
            }
            F = H.findNavPlugin('Silverlight.*Plug-?in', 0)
            if (F && F.description) {
              B = H.formatNum(F.description)
            }
            if (B) {
              K = B.split(H.splitNumRegx)
              if (parseInt(K[2], 10) >= 30226 && parseInt(K[0], 10) < 2) {
                K[0] = '2'
              }
              B = K.join(',')
            }
          }
          G.installed = F && D && B ? 1 : F && D ? 0 : F ? -0.2 : -1
        } else {
          I = H.getAXO(G.progID)
          var w, x, p
          if (I && d(I, J[0], J[1], J[2], J[3], J[4])) {
            for (w = 0; w < G.digits.length; w++) {
              p = K[w]
              for (x = p + (w == 0 ? 0 : 1); x <= G.digits[w]; x++) {
                if (t(I, w, x)) {
                  D = true
                  K[w] = x
                } else {
                  break
                }
              }
              if (!D) {
                break
              }
            }
            if (D) {
              B = v(K[0], K[1], K[2], K[3], K[4])
            }
          }
          G.installed = I && D && B ? 1 : I && D ? 0 : I ? -0.2 : -1
        }
        G.version = H.formatNum(B)
      },
    },
    zz: 0,
  }
  PluginDetect.initScript()
  RVIDTrack = 3
  newTrack = 5
  var _RVIDCaptureString = ''
  var _extraDataPoints = {}
  var _version = '2.0.0'
  var userAgent = String(navigator.userAgent)
  var isIE = navigator.appVersion.indexOf('MSIE') != -1 ? true : false
  if (userAgent.indexOf('Trident/7.0') != -1) {
    isIE = true
  }
  if (userAgent.indexOf('Edge/12.') != -1) {
    isIE = true
  }
  var isWin = navigator.appVersion.toLowerCase().indexOf('win') != -1 ? true : false
  var isMac = navigator.appVersion.toLowerCase().indexOf('macintosh') != -1 ? true : false
  var is_iPhone = navigator.appVersion.toLowerCase().indexOf('iphone') != -1 ? true : false
  var is_iPod = navigator.appVersion.toLowerCase().indexOf('ipod') != -1 ? true : false
  var isLinux = navigator.appVersion.toLowerCase().indexOf('linux') != -1 ? true : false
  var isAndroid = navigator.appVersion.toLowerCase().indexOf('android') != -1 ? true : false
  var isOpera = userAgent.indexOf('Opera') != -1 ? true : false
  var isChrome = userAgent.indexOf('Chrome') != -1 ? true : false
  var isSafari
  if (!isChrome) {
    isSafari = userAgent.indexOf('Safari') != -1 ? true : false
  } else {
    isSafari = false
  }
  var isFF = userAgent.indexOf('Firefox') != -1 ? true : false
  var isAOL = userAgent.indexOf('AOL') != -1 ? true : false
  var counter = 0
  newTrack = 6
  try {
    var body1 = document.getElementsByTagName('body')
    if (body1[0].style.behavior == '' || body1[0].style.behavior == null) {
      body1[0].style.behavior = 'url(#default#clientCaps)'
    }
  } catch (Error) {}
  RVIDTrack = 4
  newTrack = 7

  function addValue(b, a) {
    counter++
    dfCount++
    if (_RVIDCaptureString == '') {
      _RVIDCaptureString = a
    } else {
      _RVIDCaptureString = _RVIDCaptureString + '|' + a
    }
    if (
      b == 'minorverlet' ||
      b == 'geckoBuildDate' ||
      b == 'browserdatetime' ||
      b == 'flashverex' ||
      b == 'flash' ||
      b == 'aolversion' ||
      b == 'authorware' ||
      b == 'browserbuild' ||
      b == 'colordepth' ||
      b == 'connectiontype' ||
      b == 'dhtml' ||
      b == 'director' ||
      b == 'directorverex' ||
      b == 'displayxdpiactual' ||
      b == 'displayxdpilogical' ||
      b == 'displayydpiactual' ||
      b == 'displayydpilogical' ||
      b == 'Flip4Mac' ||
      b == 'fontsmoothing' ||
      b == 'geckoBuildDate' ||
      b == 'gecko' ||
      b == 'height' ||
      b == 'heightavail' ||
      b == 'iframes' ||
      b == 'isAvailable' ||
      b == 'javaenabled' ||
      b == 'javascriptbuild' ||
      b == 'javascriptenabled' ||
      b == 'javascriptver' ||
      b == 'langsystem' ||
      b == 'languser' ||
      b == 'mediaplayer' ||
      b == 'mediaplayerverex' ||
      b == 'msxml' ||
      b == 'platform' ||
      b == 'servicepack' ||
      b == 'persistentcookies' ||
      b == 'sessioncookies' ||
      b == 'silverlightverex' ||
      b == 'silverlight' ||
      b == 'ssl' ||
      b == 'sslactive' ||
      b == 'textsize' ||
      b == 'timezonediff' ||
      b == 'width' ||
      b == 'widthavail' ||
      b == 'xml' ||
      b == 'xmlhttprequest'
    ) {
      addCapValue(b, a)
    }
    if (b == 'referrer') {
      addCapValue('referrer', document.referrer == '' ? 0 : document.referrer)
    }
    tempDF = _RVIDCaptureString
  }
  newTrack = 8
  String.prototype.hashCode = function () {
    if (Array.prototype.reduce) {
      return this.split('').reduce(function (e, d) {
        e = (e << 5) - e + d.charCodeAt(0)
        return e & e
      }, 0)
    }
    var c = 0
    if (this.length === 0) {
      return c
    }
    for (var a = 0; a < this.length; a++) {
      var b = this.charCodeAt(a)
      c = (c << 5) - c + b
      c = c & c
    }
    return c
  }

  function getCNprintLegacyHash() {
    var b = 0
    try {
      b = getCNprintLegacy().hashCode()
      if (isNaN(b)) {
        b = 0
      }
    } catch (a) {}
    return b
  }

  function getCNprintLegacy() {
    var c = document.createElement('canvas')
    c.style = 'border:1px solid #000000'
    var b = c.getContext('2d')
    var a = 'Imperium'
    b.textBaseline = 'top'
    b.font = "14px 'Arial'"
    b.textBaseline = 'alphabetic'
    b.fillStyle = '#f60'
    b.fillRect(125, 1, 62, 20)
    b.fillStyle = '#069'
    b.fillText(a, 2, 100)
    b.fillStyle = 'rgba(102, 204, 0, 0.7)'
    b.fillText(a, 4, 100)
    return c.toDataURL()
  }

  function getCNprintHash() {
    try {
      var c = document.createElement('canvas')
      c.width = 240
      c.height = 140
      c.style.display = 'inline'
      var e = c.getContext('2d')
      if (!e || !c.toDataURL) {
        return ''
      }
      e.rect(0, 0, 10, 10)
      e.rect(2, 2, 6, 6)
      var b = !e.isPointInPath(5, 5, 'evenodd')
      e.textBaseline = 'alphabetic'
      e.fillStyle = '#f60'
      e.fillRect(125, 1, 62, 20)
      e.fillStyle = '#069'
      var a = 'Cwm fjordbank \ud83d\ude03 gly'
      e.font = '11pt no-real-font-123'
      e.fillText(a, 2, 15)
      e.fillStyle = 'rgba(102, 204, 0, 0.2)'
      e.font = '18pt Arial'
      e.fillText(a, 4, 45)
      e.globalCompositeOperation = 'multiply'
      e.fillStyle = 'rgb(255,0,255)'
      e.beginPath()
      e.arc(50, 50, 50, 0, Math.PI * 2, true)
      e.closePath()
      e.fill()
      e.fillStyle = 'rgb(0,255,255)'
      e.beginPath()
      e.arc(100, 50, 50, 0, Math.PI * 2, true)
      e.closePath()
      e.fill()
      e.fillStyle = 'rgb(255,255,0)'
      e.beginPath()
      e.arc(75, 100, 50, 0, Math.PI * 2, true)
      e.closePath()
      e.fill()
      e.fillStyle = 'rgb(255,0,255)'
      e.arc(75, 75, 75, 0, Math.PI * 2, true)
      e.arc(75, 75, 25, 0, Math.PI * 2, true)
      e.fill('evenodd')
      return sha256(c.toDataURL())
    } catch (d) {
      return ''
    }
  }
  var sha256 = function (m) {
    function K(b, a) {
      return (b >>> a) | (b << (32 - a))
    }
    var F = Math.pow
    var q = F(2, 32)
    var h = 'length'
    var D, B
    var u = ''
    var x = []
    var g = m[h] * 8
    var d = (sha256.h = sha256.h || [])
    var A = (sha256.k = sha256.k || [])
    var o = A[h]
    var l = {}
    for (var n = 2; o < 64; n++) {
      if (!l[n]) {
        for (D = 0; D < 313; D += n) {
          l[D] = n
        }
        d[o] = (F(n, 0.5) * q) | 0
        A[o++] = (F(n, 1 / 3) * q) | 0
      }
    }
    m += '\x80'
    while ((m[h] % 64) - 56) {
      m += '\x00'
    }
    for (D = 0; D < m[h]; D++) {
      B = m.charCodeAt(D)
      if (B >> 8) {
        return
      }
      x[D >> 2] |= B << (((3 - D) % 4) * 8)
    }
    x[x[h]] = (g / q) | 0
    x[x[h]] = g
    for (B = 0; B < x[h]; ) {
      var v = x.slice(B, (B += 16))
      var c = d
      d = d.slice(0, 8)
      for (D = 0; D < 64; D++) {
        var z = D + B
        var p = v[D - 15],
          t = v[D - 2]
        var H = d[0],
          E = d[4]
        var J =
          d[7] +
          (K(E, 6) ^ K(E, 11) ^ K(E, 25)) +
          ((E & d[5]) ^ (~E & d[6])) +
          A[D] +
          (v[D] =
            D < 16
              ? v[D]
              : (v[D - 16] +
                  (K(p, 7) ^ K(p, 18) ^ (p >>> 3)) +
                  v[D - 7] +
                  (K(t, 17) ^ K(t, 19) ^ (t >>> 10))) |
                0)
        var I = (K(H, 2) ^ K(H, 13) ^ K(H, 22)) + ((H & d[1]) ^ (H & d[2]) ^ (d[1] & d[2]))
        d = [(J + I) | 0].concat(d)
        d[4] = (d[4] + J) | 0
      }
      for (D = 0; D < 8; D++) {
        d[D] = (d[D] + c[D]) | 0
      }
    }
    for (D = 0; D < 8; D++) {
      for (B = 3; B + 1; B--) {
        var G = (d[D] >> (B * 8)) & 255
        u += (G < 16 ? 0 : '') + G.toString(16)
      }
    }
    return u
  }

  function getWebGLRenderer() {
    try {
      var b = document.createElement('canvas')
      var a = b.getContext('webgl') || b.getContext('experimental-webgl')
      var g = a.getExtension('WEBGL_debug_renderer_info')
      var c
      if (g && g.UNMASKED_RENDERER_WEBGL) {
        c = a.getParameter(g.UNMASKED_RENDERER_WEBGL)
      }
      if (!c && a.RENDERER) {
        c = a.getParameter(a.RENDERER)
      }
      if (c && typeof c !== 'string') {
        c = JSON.stringify(c)
      }
      return c || 'not supported'
    } catch (d) {
      return 'not supported'
    }
  }

  function getWebGLDataHash() {
    try {
      var b = document.createElement('canvas')
      var d = b.getContext('webgl') || b.getContext('experimental-webgl')
      var a =
        'attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}'
      var g =
        'precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}'
      var m = d.createBuffer()
      d.bindBuffer(d.ARRAY_BUFFER, m)
      var j = [-0.2, -0.9, 0, 0.4, -0.26, 0, 0, 0.732134444, 0]
      if (Float32Array) {
        j = new Float32Array(j)
      }
      d.bufferData(d.ARRAY_BUFFER, j, d.STATIC_DRAW)
      m.itemSize = 3
      m.numItems = 3
      var c = d.createProgram()
      var l = d.createShader(d.VERTEX_SHADER)
      d.shaderSource(l, a)
      d.compileShader(l)
      var n = d.createShader(d.FRAGMENT_SHADER)
      d.shaderSource(n, g)
      d.compileShader(n)
      d.attachShader(c, l)
      d.attachShader(c, n)
      d.linkProgram(c)
      d.useProgram(c)
      c.vertexPosAttrib = d.getAttribLocation(c, 'attrVertex')
      c.offsetUniform = d.getUniformLocation(c, 'uniformOffset')
      d.enableVertexAttribArray(c.vertexPosArray)
      d.vertexAttribPointer(c.vertexPosAttrib, m.itemSize, d.FLOAT, !1, 0, 0)
      d.uniform2f(c.offsetUniform, 1, 1)
      d.drawArrays(d.TRIANGLE_STRIP, 0, m.numItems)
      if (d.canvas != null) {
        return sha256(d.canvas.toDataURL())
      } else {
        return ''
      }
    } catch (h) {
      return ''
    }
  }

  function checkTime(a) {
    if (a < 10) {
      a = '0' + a
    }
    return a
  }

  function checkTimeTime(a) {
    if (a < 10) {
      a = '00' + a
    } else {
      if (a < 100) {
        a = '0' + a
      }
    }
    return a
  }

  function getDateTime() {
    var b = new Date()
    var g = b.getHours()
    var a = b.getMinutes()
    var e = b.getSeconds()
    var l = b.getDate()
    var j = b.getMonth() + 1
    var c = b.getMilliseconds()
    var n = b.getFullYear()
    a = checkTime(a)
    e = checkTime(e)
    l = checkTime(l)
    j = checkTime(j)
    c = checkTimeTime(c)
    return j + '/' + l + '/' + n + ' ' + g + ':' + a + ':' + e + '.' + c
  }

  function addCapValue(b, a) {
    if (!b) {
      return
    }
    if (a == undefined || a == null) {
      a = ''
    }
    relevantId.captureObject.Count++
    relevantId.captureObject[b.toLowerCase()] = a.toString()
  }

  function getBrowserTime() {
    var c = new Date()
    var a = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']
    var b = [
      'January',
      'February',
      'March',
      'April',
      'May',
      'June',
      'July',
      'August',
      'September',
      'October',
      'November',
      'December',
    ]
    return (
      a[c.getDay()] +
      ', ' +
      b[c.getMonth()] +
      ' ' +
      c.getDate() +
      ', ' +
      c.getFullYear() +
      ' ' +
      c.getHours() +
      ':' +
      c.getMinutes() +
      ':' +
      c.getSeconds()
    )
  }

  function getBrowserTimeMS() {
    var a = new Date()
    return a.getTime()
  }

  function detectUnityWebPlayer() {
    var b = false
    if (
      (navigator.appVersion.indexOf('MSIE') != -1 &&
        navigator.appVersion.toLowerCase().indexOf('win') != -1) ||
      navigator.appVersion.toLowerCase().indexOf('trident/7.0') != -1
    ) {
      try {
        b = detectUnityWebPlayerActiveX()
      } catch (a) {}
    } else {
      if (navigator.mimeTypes && navigator.mimeTypes['application/vnd.unity']) {
        if (
          navigator.mimeTypes['application/vnd.unity'].enabledPlugin &&
          navigator.plugins &&
          navigator.plugins['Unity Player']
        ) {
          b = true
        }
      }
    }
    return b
  }
  newTrack = 9

  function getOS() {
    ma = new Array()
    ma[0] = new Array(2)
    ma[0][0] = 'iPhone'
    ma[0][1] = 'iPhone'
    ma[1] = new Array(2)
    ma[1][0] = 'Android'
    ma[1][1] = 'Android'
    ma[2] = new Array(2)
    ma[2][0] = 'Black Berry'
    ma[2][1] = 'Black Berry'
    ma[3] = new Array(2)
    ma[3][0] = 'Windows CE'
    ma[3][1] = 'Windows CE'
    ma[4] = new Array(2)
    ma[4][0] = 'OpenBSD'
    ma[4][1] = 'Open BSD'
    ma[5] = new Array(2)
    ma[5][0] = 'SunOS'
    ma[5][1] = 'Sun OS'
    ma[6] = new Array(2)
    ma[6][0] = 'Linux'
    ma[6][1] = 'Linux'
    ma[7] = new Array(2)
    ma[7][0] = 'X11'
    ma[7][1] = 'Linux'
    ma[8] = new Array(2)
    ma[8][0] = 'QNX'
    ma[8][1] = 'QNX'
    ma[9] = new Array(2)
    ma[9][0] = 'BeOS'
    ma[9][1] = 'BeOS'
    ma[10] = new Array(2)
    ma[10][0] = 'OS/2'
    ma[10][1] = 'OS/2'
    ma[11] = new Array(2)
    ma[11][0] = 'Mac_PowerPC'
    ma[11][1] = 'Mac OS'
    ma[12] = new Array(2)
    ma[12][0] = 'Macintosh'
    ma[12][1] = 'MacOSX'
    ma[13] = new Array(2)
    ma[13][0] = 'Win16'
    ma[13][1] = 'Windows 3.11'
    ma[14] = new Array(2)
    ma[14][0] = 'Windows NT 4.0'
    ma[14][1] = 'Windows NT 4.0'
    ma[15] = new Array(2)
    ma[15][0] = 'WinNT4.0'
    ma[15][1] = 'Windows NT 4.0'
    ma[16] = new Array(2)
    ma[16][0] = 'WinNT'
    ma[16][1] = 'Windows NT 4.0'
    ma[17] = new Array(2)
    ma[17][0] = 'Windows NT'
    ma[17][1] = 'Windows NT 4.0'
    ma[18] = new Array(2)
    ma[18][0] = 'Windows 95'
    ma[18][1] = 'Windows 95'
    ma[19] = new Array(2)
    ma[19][0] = 'Win95'
    ma[19][1] = 'Windows 95'
    ma[20] = new Array(2)
    ma[20][0] = 'Windows_95'
    ma[20][1] = 'Windows 95'
    ma[21] = new Array(2)
    ma[21][0] = 'Windows 98'
    ma[21][1] = 'Windows 98'
    ma[22] = new Array(2)
    ma[22][0] = 'Win98'
    ma[22][1] = 'Windows 98'
    ma[23] = new Array(2)
    ma[23][0] = 'Windows ME'
    ma[23][1] = 'Windows ME'
    ma[24] = new Array(2)
    ma[24][0] = 'Windows NT 5.0'
    ma[24][1] = 'Windows 2000'
    ma[25] = new Array(2)
    ma[25][0] = 'Windows NT 5.01'
    ma[25][1] = 'Windows 2000'
    ma[26] = new Array(2)
    ma[26][0] = 'Windows 2000'
    ma[26][1] = 'Windows 2000'
    ma[27] = new Array(2)
    ma[27][0] = 'Windows NT 5.2'
    ma[27][1] = 'Windows Server 2003'
    ma[28] = new Array(2)
    ma[28][0] = 'Windows XP'
    ma[28][1] = 'WinXP'
    ma[29] = new Array(2)
    ma[29][0] = 'Windows NT 5.1'
    ma[29][1] = 'WinXP'
    ma[30] = new Array(2)
    ma[30][0] = 'Windows NT 6.0'
    ma[30][1] = 'Windows Vista'
    ma[31] = new Array(2)
    ma[31][0] = 'Windows NT 6.1'
    ma[31][1] = 'Windows 7'
    ma[32] = new Array(2)
    ma[32][0] = 'Windows NT 7.0'
    ma[32][1] = 'Windows 7'
    ma[33] = new Array(2)
    ma[33][0] = 'Windows NT 6.2'
    ma[33][1] = 'Windows 8'
    ma[34] = new Array(2)
    ma[34][0] = 'Windows NT 6.3'
    ma[34][1] = 'Windows 8.1'
    ma[35] = new Array(2)
    ma[35][0] = 'Windows NT 10.0'
    ma[35][1] = 'Windows 10'
    var a = '0'
    for (i = ma.length - 1; i >= 0; i--) {
      if (userAgent.indexOf(ma[i][0]) != -1) {
        a = ma[i][1]
        break
      }
    }
    return a
  }

  function checkIframes() {
    var b = document.createElement('iframe')
    var a = 0
    try {
      if (b) {
        a = 1
      }
    } catch (c) {
      a = 0
    }
    return a
  }
  newTrack = 10

  function getSilverlightVersion() {
    if (isMac || isAndroid || is_iPod || is_iPhone) {
      pih1 = pih1 + '0'
      return 0
    }
    var a = 0
    try {
      PluginDetect.getVersion('.')
      a = PluginDetect.getVersion('Silverlight')
    } catch (b) {
      a = 0
    }
    if (a == null) {
      a = 0
    }
    if (a != 0) {
      pih1 = pih1 + '1'
    } else {
      pih1 = pih1 + '0'
    }
    return a
  }

  function getSilverlightMajorVersion() {
    if (isMac || is_iPod || is_iPhone) {
      return 0
    }
    var a = '0.0'
    try {
      PluginDetect.getVersion('.')
      a = PluginDetect.getVersion('Silverlight')
    } catch (b) {
      a = '0.0'
    }
    if (a == undefined || a == null) {
      a = '0.0'
    }
    return a.substring(0, String(a).indexOf('.'))
  }

  function detectSilverlight() {
    var a = false
    try {
      a = PluginDetect.isMinVersion('Silverlight', '0') >= 0 ? true : false
    } catch (b) {
      a = false
    }
    return a ? 1 : 0
  }

  function detectDirector() {
    var a = false
    try {
      a = PluginDetect.isMinVersion('Shockwave', '0') >= 0 ? true : false
    } catch (b) {
      a = false
    }
    if (a) {
      pih1 = pih1 + '1'
    } else {
      pih1 = pih1 + '0'
    }
    return a ? 1 : 0
  }

  function getDirectorVersion() {
    var a = 0
    try {
      PluginDetect.getVersion('.')
      a = PluginDetect.getVersion('Shockwave')
    } catch (b) {
      a = 0
    }
    if (a == null) {
      a = 0
    }
    return a
  }
  newTrack = 11

  function getWindowsMediaVersion() {
    var a = 0
    try {
      if (window.ActiveXObject) {
        var c = null
        try {
          c = new ActiveXObject('WMPlayer.OCX')
        } catch (b) {
          a = 0
        }
        if (c) {
          a = c.versionInfo
        }
      }
    } catch (b) {
      a = 0
    }
    return a
  }

  function detectWindowsMedia() {
    var a = false
    try {
      if (canDetectNavigatorPlugins()) {
        a = detectPlugin('Media Player')
      } else {
        if (window.ActiveXObject) {
          var c = null
          try {
            c = new ActiveXObject('WMPlayer.OCX')
          } catch (b) {}
          if (c) {
            a = true
          }
        }
      }
    } catch (b) {
      a = false
    }
    if (a) {
      pih1 = pih1 + '1'
    } else {
      pih1 = pih1 + '0'
    }
    return a ? 1 : 0
  }

  function isFlip4MacInstalled() {
    var a = false
    try {
      if (canDetectNavigatorPlugins()) {
        a = detectPlugin('Flip4Mac')
      }
    } catch (b) {
      a = false
    }
    return a ? 1 : 0
  }

  function Flip4MacVersion() {
    var a = 0
    try {
      if (isFlip4MacInstalled()) {
        for (var b = 0; b < navigator.plugins.length; b++) {
          if (navigator.plugins[b].name.indexOf('Flip4Mac') != -1) {
            var c = navigator.plugins[b].name
            var d = c.split(' ')
            a = d[4]
            break
          }
        }
      }
    } catch (g) {
      a = 0
    }
    if (a != 0) {
      pih1 = pih1 + '1'
    } else {
      pih1 = pih1 + '0'
    }
    return a
  }

  function getFlashInfo() {
    var d = new Object()
    d.isInstalled = 0
    d.isEnabled = 0
    d.version = '0'
    var j = navigator.userAgent.split(' ')[0]
    var b = j.length > 0 ? navigator.userAgent.replace(j, '') : navigator.userAgent
    var h = b.indexOf('Windows NT 6.2') >= 0 ? true : false
    var n = b.indexOf('Windows NT 10.') >= 0 ? true : false
    var c =
      b.indexOf('MSIE') >= 0 ||
      (b.match('(Windows NT 6.3|Windows NT 6.2|Windows NT 6.1|Windows NT 10.)') !== null &&
        b.indexOf('Trident') >= 0)
        ? true
        : false
    var l = b.indexOf('Edge') >= 0 ? true : false
    var a = b.indexOf('Chrome') >= 0 ? true : false
    var m = swfobject.getFlashPlayerVersion()
    if ((h && c) || (n && l) || a) {
      d.isInstalled = 1
      d.isEnabled = 0
      d.version = '9999'
    }
    try {
      if (m.major > 0) {
        d.isInstalled = 1
        d.isEnabled = 1
        d.version = m.major + '.' + m.minor + '.' + m.release
      }
    } catch (g) {
      d.isInstalled = 0
      d.isEnabled = 0
      d.version = '0'
    }
    if (d.version == null) {
      d.version = '0'
    }
    if (d.version != '0') {
      pih1 = pih1 + '1'
    } else {
      pih1 = pih1 + '0'
    }
    return d
  }

  function canDetectNavigatorPlugins() {
    if (navigator.plugins && navigator.plugins.length > 0) {
      return true
    } else {
      return false
    }
  }

  function detectPlugin() {
    var a = false
    try {
      var b = detectPlugin.arguments
      if (navigator.plugins && navigator.plugins.length > 0) {
        for (
          pluginsArrayCounter = 0;
          pluginsArrayCounter < navigator.plugins.length;
          pluginsArrayCounter++
        ) {
          var d = 0
          for (namesCounter = 0; namesCounter < b.length; namesCounter++) {
            if (
              navigator.plugins[pluginsArrayCounter].name.indexOf(b[namesCounter]) >= 0 ||
              navigator.plugins[pluginsArrayCounter].description.indexOf(b[namesCounter]) >= 0
            ) {
              d++
            }
          }
          if (d == b.length) {
            a = true
            break
          }
        }
      }
    } catch (c) {
      a = true
    }
    return a
  }

  function getAllPlugins() {
    var a = []
    try {
      if (!window.navigator.plugins) {
        return a
      }
      for (var c = 0; c < window.navigator.plugins.length; c++) {
        var d = window.navigator.plugins[c]
        if (d) {
          a.push(d.name)
        }
      }
    } catch (b) {}
    return a
  }
  RVIDTrack = 5
  newTrack = 12
  var jsver = ''

  function createScriptTag(a) {
    try {
      var c = document.createElement('script')
      if (isOpera) {
        c.setAttribute('type', 'application/javascript;version=' + a)
      } else {
        c.setAttribute('language', 'Javascript' + a)
      }
      c.text = 'jsver = ' + a + ';'
      var b = document.forms[0] || document.body
      b.appendChild(c)
    } catch (d) {
      jsver = ''
    }
  }
  if (jsver == '') {
    createScriptTag(2.2)
  }
  if (jsver == '') {
    createScriptTag(2.1)
  }
  if (jsver == '') {
    createScriptTag(2)
  }
  if (jsver == '') {
    createScriptTag(1.9)
  }
  if (jsver == '') {
    createScriptTag(1.8)
  }
  if (jsver == '') {
    createScriptTag(1.7)
  }
  if (jsver == '') {
    createScriptTag(1.6)
  }
  if (jsver == '') {
    createScriptTag(1.5)
  }
  if (jsver == '') {
    createScriptTag(1.4)
  }
  if (jsver == '') {
    createScriptTag(1.3)
  }
  if (jsver == '') {
    createScriptTag(1.2)
  }
  if (jsver == '') {
    createScriptTag(1.1)
  }
  RVIDTrack = 6

  function getJavascriptVersion() {
    if (isNaN(jsver)) {
      jsver = -100
    }
    return jsver
  }
  var BrowserDetect = {
    init: function () {
      this.browser = this.searchString(this.dataBrowser) || '0'
      this.version =
        this.searchVersion(userAgent) || this.searchVersion(navigator.appVersion) || '0'
    },
    searchString: function (d) {
      for (var a = 0; a < d.length; a++) {
        var b = d[a].string
        var c = d[a].prop
        this.versionSearchString = d[a].versionSearch || d[a].identity
        if (b) {
          if (b.indexOf(d[a].subString) != -1) {
            return d[a].identity
          }
        } else {
          if (c) {
            return d[a].identity
          }
        }
      }
    },
    searchVersion: function (b) {
      var a = b.indexOf(this.versionSearchString)
      if (a == -1) {
        return
      }
      return parseFloat(b.substring(a + this.versionSearchString.length + 1))
    },
    dataBrowser: [
      {
        string: userAgent,
        subString: 'Edge',
        identity: 'Edge',
      },
      {
        string: userAgent,
        subString: 'Chrome',
        identity: 'Chrome',
      },
      {
        string: userAgent,
        subString: 'OmniWeb',
        versionSearch: 'OmniWeb/',
        identity: 'OmniWeb',
      },
      {
        string: navigator.vendor,
        subString: 'Apple',
        identity: 'Safari',
        versionSearch: 'Version',
      },
      {
        prop: window.opera,
        identity: 'Opera',
      },
      {
        string: navigator.vendor,
        subString: 'iCab',
        identity: 'iCab',
      },
      {
        string: navigator.vendor,
        subString: 'KDE',
        identity: 'Konqueror',
      },
      {
        string: userAgent,
        subString: 'Firefox',
        identity: 'Firefox',
      },
      {
        string: navigator.vendor,
        subString: 'Camino',
        identity: 'Camino',
      },
      {
        string: userAgent,
        subString: 'Netscape',
        identity: 'Netscape',
      },
      {
        string: userAgent,
        subString: 'MSIE',
        identity: 'IE',
        versionSearch: 'MSIE',
      },
      {
        string: userAgent,
        subString: 'Gecko',
        identity: 'Mozilla',
        versionSearch: 'rv',
      },
      {
        string: userAgent,
        subString: 'Mozilla',
        identity: 'Netscape',
        versionSearch: 'Mozilla',
      },
    ],
  }
  newTrack = 13
  BrowserDetect.init()
  newTrack = 14

  function BrowserInfo() {
    var j = 1000
    var c = {
        Edge: [/Edg\/(\S+)/, /Edge\/(\S+)/, /EdgA\/(\S+)/],
        Opera: [/OPR\/(\S+)/, /Opera\/.*?Version\/(\S+)/, /Opera\/(\S+)/, /Opera (\S+)/],
        Chrome: [/Chrome\/(\S+)/],
        IE: [/MSIE (\S+);/, /Trident\/(\S+);/],
        Firefox: [/Firefox\/(\S+)/],
        Safari: [/Version\/(\S+).*?Safari/],
      },
      e,
      a,
      d,
      b
    var h = new Object()
    h.Browser = '0'
    h.FullVersion = '0'
    h.MinorVersion = '0'
    h.MajorVersion = '0'
    h.Minorverlet = '0'
    h.Version = ''
    browserloop: for (d in c) {
      while ((e = c[d].shift())) {
        if ((a = userAgent.match(e))) {
          b = a[1].match(new RegExp('[^.]+(?:.[^.]+){0,' + --j + '}'))[0]
          h.Browser = d
          h.FullVersion = b
          var g = b.split('.')
          h.MinorVersion = g[1].replace(/[^0-9]/g, '')
          h.MajorVersion = g[0].replace(/[^0-9]/g, '')
          h.Version = g[0].replace(/[^0-9]/g, '') + '.' + g[1].replace(/[^0-9]/g, '')
          h.Minorverlet = String(g[1].replace(/[0-9]/g, '')).substring(0, 1)
          break browserloop
        }
      }
    }
    if (h.Browser == '0' || h.Browser == null || h.Browser == undefined) {
      h.Browser = BrowserDetect.browser
    }
    if (h.FullVersion == '0' || h.FullVersion == null || h.FullVersion == undefined) {
      h.FullVersion = 'r'
    }
    if (h.Version == '0' || h.Version == null || h.Version == undefined) {
      h.Version = BrowserDetect.version
    }
    if (h.MajorVersion == '0' || h.MajorVersion == null || h.MajorVersion == undefined) {
      h.MajorVersion = 'r'
    }
    if (h.MinorVersion == '0' || h.MinorVersion == null || h.MinorVersion == undefined) {
      h.MinorVersion = 'r'
    }
    if (h.Minorverlet == '0' || h.Minorverlet == null || h.Minorverlet == undefined) {
      h.Minorverlet = ''
    }
    if (userAgent.indexOf('Trident/7.0') != -1) {
      h.Browser = 'IE'
      h.Version = '11'
      h.FullVersion = '11.0'
    }
    return h
  }

  function Get_Cookie(c) {
    try {
      var j = document.cookie.split(';')
      var d = ''
      var g = ''
      var h = ''
      var e = false
      var b = ''
      for (b = 0; b < j.length; b++) {
        d = j[b].split('=')
        g = d[0].replace(/^(?:\s+)|(?:\s+)$/g, '')
        if (g == c) {
          e = true
          if (d.length > 1) {
            h = unescape(d[1].replace(/^(?:\s+)|(?:\s+)$/g, ''))
          }
          return h
        }
        d = null
        g = ''
      }
      if (!e) {
        return null
      }
    } catch (a) {
      return null
    }
  }

  function Set_Cookie(c, e, a, j, d, h) {
    var b = new Date()
    b.setTime(b.getTime())
    if (a) {
      a = a * 1000 * 60 * 60 * 24
    }
    var g = new Date(b.getTime() + a)
    document.cookie =
      c +
      '=' +
      escape(e) +
      (window.location.protocol != 'http:' ? '; SameSite=none; secure' : '') +
      (a ? ';expires=' + g.toGMTString() : '') +
      (j ? ';path=' + j : '') +
      (d ? ';domain=' + d : '')
  }

  function GetFontSize() {
    var c = 'myinput'
    var b = 'text'
    var h = 'getting the text size'
    var a = 0
    try {
      var g = document.createElement('input')
      g.setAttribute('type', b)
      g.setAttribute('id', c)
      g.setAttribute('outerText', h)
      a = g.size
    } catch (d) {
      a = 0
    }
    return a
  }

  function getTimeZoneDiff() {
    var b = new Date()
    var a = -b.getTimezoneOffset() / 60
    if (isNaN(a)) {
      ver = -100
    }
    return a
  }

  function getJavaScriptBuild() {
    var a = 0
    if (isIE) {
      try {
        a =
          ScriptEngineMajorVersion() +
          '.' +
          ScriptEngineMinorVersion() +
          '.' +
          ScriptEngineBuildVersion()
      } catch (b) {
        a = 0
      }
    }
    return a
  }
  newTrack = 15

  function getBrowserBuild() {
    var b = 0
    if (isIE) {
      try {
        b = body1[0].getComponentVersion('{89820200-ECBD-11CF-8B85-00AA005B4383}', 'ComponentID')
        if (b == '' || b == undefined) {
          b = 0
        }
      } catch (a) {
        b = 0
      }
    }
    if (b == 0) {
      return 0
    } else {
      return String(b).replace(/,/gi, '.')
    }
  }

  function getNetMeetingBuild() {
    var b = 0
    if (isIE) {
      try {
        b = body1[0].getComponentVersion('{44BBA842-CC51-11CF-AAFA-00AA00B6015B}', 'ComponentID')
        if (b == '' || b == undefined) {
          b = 0
        }
      } catch (a) {
        b = 0
      }
    }
    if (b == 0) {
      return 0
    } else {
      return String(b).replace(/,/gi, '.')
    }
  }

  function getServicePack() {
    var a = 0
    if (navigator.appMinorVersion) {
      a = navigator.appMinorVersion
    }
    return a
  }

  function getUserLanguage() {
    var a
    if (navigator.userLanguage) {
      a = navigator.userLanguage
    } else {
      if (navigator.language) {
        a = navigator.language
      }
    }
    return a
  }

  function getSystemLanguage() {
    var b = 0
    try {
      if (navigator.systemLanguage) {
        b = navigator.systemLanguage
      } else {
        b = 0
      }
    } catch (a) {}
    return b
  }

  function detectGecko() {
    var b = false
    try {
      if (navigator.product) {
        if (navigator.product == 'Gecko') {
          b = true
        }
      }
    } catch (a) {}
    return b
  }
  newTrack = 16

  function getGeckoBuildDateToInt() {
    var b = '0'
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4_1x_' + rand_no5
    try {
      document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4_2x_' + rand_no5
      if (detectGecko()) {
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4_3x_' + rand_no5
        b = navigator.buildID
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4_4x_' + rand_no5
        if (isNaN(b)) {
          b = '0'
        }
        document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4_5x_' + rand_no5
      }
    } catch (a) {
      document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4_6x_' + rand_no5
      b = '0'
    }
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4_7x_' + rand_no5
    return String(b).replace("'", '')
  }

  function getConnectionType() {
    var a = 0
    try {
      a = body1[0].connectionType
      if (a == undefined) {
        a = 0
      }
    } catch (b) {
      a = 0
    }
    return a
  }

  function supportsDHTML() {
    var a = false
    try {
      if (document.getElementById || document.all || document.layers || document.createElement) {
        a = true
      }
    } catch (b) {
      a = false
    }
    return a
  }

  function supportsXMLHttpRequest() {
    var a = false
    try {
      if (XMLHttpRequest) {
        a = true
      }
    } catch (b) {
      a = false
    }
    return a
  }

  function supportsXML() {
    var a = false
    try {
      if (window.ActiveXObject) {
        try {
          var b = new ActiveXObject('Microsoft.XMLDOM')
          if (b) {
            a = true
          }
        } catch (c) {
          a = false
        }
      } else {
        if (document.implementation && document.implementation.createDocument) {
          var b = document.implementation.hasFeature('XML', null)
          a = true
        }
      }
    } catch (c) {
      a = false
    }
    return a
  }

  function getAolVersion() {
    var a = 0
    if (isAOL) {
      try {
        a = userAgent
        a = a.substring(a.indexOf('AOL') + 4)
        a = a.substring(0, a.indexOf(';'))
      } catch (b) {
        a = 0
      }
    }
    if (isNaN(a)) {
      a = -100
    }
    return a
  }

  function isEmailCrawler() {
    var a = false
    if (
      userAgent.indexOf('crawler') != -1 ||
      userAgent.indexOf('spider') != -1 ||
      userAgent.indexOf('bot') != -1
    ) {
      a = true
    }
    return a
  }

  function canUploadFile() {
    var b = 'Yes'
    var a = document.createElement('input')
    a.setAttribute('type', 'file')
    a.setAttribute('name', 'isisUploadTest')
    if (!a) {
      b = 'No'
    }
    return b
  }

  function persistentCookies() {
    var a = 0
    Set_Cookie('ISIStest', 'it works', '', '/', '', '')
    if (Get_Cookie('ISIStest')) {
      a = 1
    }
    ExpireCookie_('ISIStest', '/')
    return a
  }
  newTrack = 17

  function sessionCookies() {
    var a = 0
    Set_Cookie('ISIStest', 'it works', '', '/', '', '')
    if (Get_Cookie('ISIStest')) {
      a = 1
    }
    ExpireCookie_('ISIStest', '/')
    return a
  }

  function ExpireCookie_(c, d) {
    try {
      var b = window.location.protocol != 'http:' ? 'SameSite=none; secure' : ''
      document.cookie = c + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;path=' + d + ';' + b
    } catch (a) {}
  }

  function getJavaEnabled() {
    try {
      return navigator.javaEnabled()
    } catch (a) {
      return false
    }
  }

  function getDataPoints() {
    newTrack = 18
    RVIDTrack = 16
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_1x_' + rand_no5
    newTrack = 19
    isThisMobile = isMobile()
    browserobject = BrowserInfo()
    newTrack = 20
    addValue('activexcontrols', '0')
    addValue('activexenabled', '0')
    addValue('aol', '0')
    addValue('aolversion', getAolVersion())
    addValue('authorware', 0)
    addValue('beta', '0')
    addValue('browserbuild', getBrowserBuild())
    addValue('browser', browserobject.Browser)
    addValue('citrix', 0)
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2x_' + rand_no5
    addValue('colordepth', screen.colorDepth)
    addValue('compressgzip', '0')
    addValue('connectiontype', getConnectionType())
    addValue('country', 0)
    addValue('countryname', 0)
    addValue('crawler', '0')
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2_1x_' + rand_no5
    addValue('dhtml', supportsDHTML())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2_2x_' + rand_no5
    addValue('director', detectDirector())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2_3x_' + rand_no5
    addValue('directorverex', getDirectorVersion())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2_4x_' + rand_no5
    addValue('displayxdpiactual', isIE ? screen.deviceXDPI : 0)
    addValue('displayxdpilogical', isIE ? screen.logicalXDPI : 0)
    addValue('displayydpiactual', isIE ? screen.deviceYDPI : 0)
    addValue('displayydpilogical', isIE ? screen.logicalYDPI : 0)
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2_5x_' + rand_no5
    addValue('emailcrawler', isEmailCrawler())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2_6x_' + rand_no5
    addValue('fileupload', canUploadFile())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3x_' + rand_no5
    var flashObj = getFlashInfo()
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_1_1x_' + rand_no5
    var ver = flashObj.version.indexOf('.')
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_1_2x_' + rand_no5
    addValue('flash', flashObj.isInstalled)
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_1x_' + rand_no5
    addValue('flashverex', flashObj.version)
    addCapValue('flashenabled', flashObj.isEnabled)
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_1x_' + rand_no5
    addValue('Flip4Mac', Flip4MacVersion())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_2x_' + rand_no5
    addValue('fontsmoothing', screen.fontSmoothingEnabled ? 1 : 0)
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_3x_' + rand_no5
    addValue('fullversion', browserobject.FullVersion)
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_4x_' + rand_no5
    addValue('geckoBuildDate', getGeckoBuildDateToInt())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_5x_' + rand_no5
    addValue('gecko', detectGecko())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2_6x_' + rand_no5
    addValue('hdml', '0')
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3_2x_' + rand_no5
    addValue('height', screen.height)
    addValue('heightavail', screen.availHeight)
    addValue('iframes', checkIframes())
    addValue('ipaddr', '0')
    addValue('ipixviewer', 0)
    addValue('isAvailable', 1)
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_4x_' + rand_no5
    RVIDTrack = 17
    addValue('javaapplets', '0')
    addValue('javaenabled', getJavaEnabled())
    addValue('javascriptbuild', getJavaScriptBuild())
    addValue('javascriptenabled', 1)
    addValue('javascriptver', '0')
    addValue('langsystem', getSystemLanguage())
    addValue('language', '0')
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_1x_' + rand_no5
    addValue('languser', getUserLanguage())
    addValue('majorver', browserobject.MajorVersion)
    addValue('mapguide', 0)
    addValue('mediaplayer', detectWindowsMedia())
    addValue('mediaplayerverex', getWindowsMediaVersion())
    addValue('minorver', browserobject.MinorVersion)
    addValue('minorverlet', browserobject.Minorverlet)
    addValue('msxml', 0)
    addValue('netclrinstalled', '0')
    addValue('netclrversion', '0')
    addValue('netmeetingbuild', getNetMeetingBuild())
    addValue('pda', isThisMobile[0])
    addValue('persistentcookies', persistentCookies())
    if (isThisMobile[0] == 1) {
      addValue('platform', isThisMobile[1])
    } else {
      addValue('platform', getOS())
    }
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_2x_' + rand_no5
    addValue('png', '0')
    addValue('proxy', '0')
    addValue('proxystring', '0')
    addValue('referrer', 0)
    addValue('servicepack', getServicePack())
    addValue('sessioncookies', sessionCookies())
    addValue('silverlight', getSilverlightMajorVersion())
    addValue('silverlightverex', getSilverlightVersion())
    addValue('ssl', 1)
    addValue('sslactive', String(document.location.protocol).indexOf('https') != -1 ? 1 : 0)
    addValue('svgviewer', 0)
    addValue('textsize', GetFontSize())
    addValue('timezonediff', getTimeZoneDiff())
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_3x_' + rand_no5
    addValue('vbscript', '0')
    addValue('vbscriptenabled', '0')
    addValue('version', browserobject.Version)
    addValue('viewpoint', 0)
    addValue('wap', '0')
    addValue('wapdevicemodel', '0')
    addValue('wapgateway', '0')
    addValue('wapmaxdecksize', '0')
    addValue('wapsubscriberid', '0')
    addValue('width', screen.width)
    addValue('widthavail', screen.availWidth)
    addValue('wininstallerminver', '0')
    addValue('xml', supportsXML())
    addValue('xmlhttprequest', supportsXMLHttpRequest())
    var unityPlayer = '0'
    if (detectUnityWebPlayer()) {
      unityPlayer = '1'
    }
    addCapValue('unityWebPlayer', unityPlayer)
    RVIDTrack = 18
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_x_' + rand_no5
    if (document.getElementById('wm') == null) {
      var doc = document
      var f = document.forms[0] || document.body
      var el = doc.createElement('input')
      el.style.width = '400px'
      el.type = 'text'
      el.style.display = 'none'
      el = f.appendChild(el)
      el.name = 'wm'
      el.id = 'wm'
    }
    notificationPermissions()
    keyboardLayoutMapSize()
    _supportsBluetooth()
    storageManagerDetails()
    _userAgentClientHints()
    _accelDetect()
    _gyroDetect()
    mediaDeviceGroups()
    _detectPrivacyMode()
    rvidFreezeSetProp(_extraDataPoints, 'MachineTime', getDateTime())
    rvidFreezeSetProp(_extraDataPoints, 'IANATimeZone', jstz.determine().name())
    rvidFreezeSetProp(_extraDataPoints, 'CanvasId', getCNprintLegacyHash())
    rvidFreezeSetProp(_extraDataPoints, 'CanvasHash', getCNprintHash())
    rvidFreezeSetProp(_extraDataPoints, 'PluginList', getAllPlugins() || [])
    rvidFreezeSetProp(_extraDataPoints, 'WebGLRenderer', getWebGLRenderer())
    rvidFreezeSetProp(_extraDataPoints, 'WebGLDataHash', getWebGLDataHash())
    rvidFreezeSetProp(_extraDataPoints, 'InIFrame', inIframe())
    rvidFreezeSetProp(_extraDataPoints, 'FeatDetectedBrowser', featDetectBrowser())
    rvidFreezeSetProp(_extraDataPoints, 'NavigatorUserAgent', navigator.userAgent)
    rvidFreezeSetProp(
      _extraDataPoints,
      'NavigatorLanguages',
      Array.isArray && Array.isArray(navigator.languages) ? navigator.languages : null,
    )
    rvidFreezeSetProp(_extraDataPoints, 'AutomatedBrowserProps', checkForAutomatedBrowserProps())
    rvidFreezeSetProp(
      _extraDataPoints,
      'EvalLength',
      eval && eval.toString ? eval.toString().length : 0,
    )
    rvidFreezeSetProp(
      _extraDataPoints,
      'MediaDevicesConstraintsCount',
      mediaDevicesConstraintsCount(),
    )
    rvidFreezeSetProp(_extraDataPoints, 'AudioSampleRate', getAudioSampleRate())
    rvidFreezeSetProp(_extraDataPoints, 'MimeTypes', getAllMimeTypes())
    rvidFreezeSetProp(_extraDataPoints, 'DevToolsOpen', rvidDevToolsOpen())
    document.getElementById('wm').value = Number(flashObj.version.substring(0, ver == -1 ? 1 : ver))
    RVIDTrack = 19
    document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_x_' + rand_no5
  }

  function rvidFreezeSetProp(b, c, a) {
    if (!Object.defineProperty) {
      b[c] = a
    } else {
      Object.defineProperty(b, c, {
        value: a,
        writable: false,
      })
    }
  }
  newTrack = 21
  var propertyString1 = ''
  RVIDTrack = 7
  RVIDTrack = 9
  try {
    ZZZ = (function () {
      var e = '0.1.0',
        d,
        h,
        a,
        g,
        c,
        b
      b = (function () {
        var t = 'Thu, 01-Jan-1970 00:00:01 GMT',
          l = 1000 * 60 * 60 * 24,
          u = ['expires', 'path', 'domain'],
          n = escape,
          m = unescape,
          q = document,
          o
        var v = function () {
          var w = new Date()
          w.setTime(w.getTime())
          return w
        }
        var j = function (A, E) {
          var z,
            x,
            D,
            B = [],
            w = arguments.length > 2 ? arguments[2] : {}
          B.push(n(A) + '=' + n(E))
          for (z = 0; z < u.length; z++) {
            x = u[z]
            if ((D = w[x])) {
              B.push(x + '=' + D)
            }
          }
          if (window.location.protocol != 'http:') {
            B.push('SameSite=none')
            B.push('secure')
          }
          return B.join('; ')
        }
        var p = function () {
          var x = '__EC_TEST__',
            w = new Date()
          w = w.toGMTString()
          this.set(x, w)
          this.enabled = this.remove(x) == w
          return this.enabled
        }
        o = {
          set: function (B, F) {
            var A = arguments.length > 2 ? arguments[2] : {},
              z = v(),
              x,
              w = {}
            if (A.expires) {
              A.expires *= l
              w.expires = new Date(z.getTime() + A.expires)
              w.expires = w.expires.toGMTString()
            }
            var E = ['path', 'domain', 'secure']
            for (i = 0; i < E.length; i++) {
              if (A[E[i]]) {
                w[E[i]] = A[E[i]]
              }
            }
            var D = j(B, F, w)
            q.cookie = D
            return F
          },
          has: function (x) {
            x = n(x)
            var B = q.cookie,
              A = B.indexOf(x + '='),
              w = A + x.length + 1,
              z = B.substring(0, x.length)
            return (!A && x != z) || A < 0 ? false : true
          },
          get: function (z) {
            z = n(z)
            var D = q.cookie,
              B = D.indexOf(z + '='),
              w = B + z.length + 1,
              A = D.substring(0, z.length),
              x
            if ((!B && z != A) || B < 0) {
              return null
            }
            x = D.indexOf(';', w)
            if (x < 0) {
              x = D.length
            }
            return m(D.substring(w, x))
          },
          remove: function (w) {
            var z = o.get(w),
              x = {
                expires: t,
              }
            q.cookie = j(w, '', x)
            return z
          },
          keys: function () {
            var B = q.cookie,
              A = B.split('; '),
              w,
              z,
              x = []
            for (w = 0; w < A.length; w++) {
              z = A[w].split('=')
              x.push(m(z[0]))
            }
            return x
          },
          all: function () {
            var B = q.cookie,
              A = B.split('; '),
              w,
              z,
              x = []
            for (w = 0; w < A.length; w++) {
              z = A[w].split('=')
              x.push([m(z[0]), m(z[1])])
            }
            return x
          },
          version: '0.2.1',
          enabled: false,
        }
        o.enabled = p.call(o)
        return o
      })()
      c = function () {}
      a = function (j) {
        return 'PS' + j.replace(/_/g, '__').replace(/ /g, '_s')
      }
      C = {
        search_order: ['ie', 'localstorage', 'whatwg_db', 'globalstorage'],
        name_re: /^[a-z][a-z0-9_ -]+$/i,
        methods: ['init', 'get', 'set', 'remove', 'load', 'save'],
        sql: {
          version: '1',
          create:
            'CREATE TABLE IF NOT EXISTS persist_data (k TEXT UNIQUE NOT NULL PRIMARY KEY, v TEXT NOT NULL)',
          get: 'SELECT v FROM persist_data WHERE k = ?',
          set: 'INSERT INTO persist_data(k, v) VALUES (?, ?)',
          remove: 'DELETE FROM persist_data WHERE k = ?',
        },
        flash: {
          div_id: '_persist_flash_wrap',
          id: '_persist_flash',
          path: 'persist.swf',
          size: {
            w: 1,
            h: 1,
          },
          args: {
            autostart: true,
          },
        },
      }
      h = {
        gears: {
          size: -1,
          test: function () {
            return window.google && window.google.gears ? true : false
          },
          methods: {
            transaction: function (l) {
              var j = this.db
              j.execute('BEGIN').close()
              l.call(this, j)
              j.execute('COMMIT').close()
            },
            init: function () {
              var j
              j = this.db = google.gears.factory.create('beta.database')
              j.open(a(this.name))
              j.execute(C.sql.create).close()
            },
            get: function (j, m, l) {
              var n,
                o = C.sql.get
              if (!m) {
                return
              }
              this.transaction(function (p) {
                n = p.execute(o, [j])
                if (n.isValidRow()) {
                  m.call(l || this, true, n.field(0))
                } else {
                  m.call(l || this, false, null)
                }
                n.close()
              })
            },
            set: function (l, q, n, m) {
              var j = C.sql.remove,
                p = C.sql.set,
                o
              this.transaction(function (u) {
                u.execute(j, [l]).close()
                u.execute(p, [l, q]).close()
                if (n) {
                  n.call(m || this, true, q)
                }
              })
            },
            remove: function (j, m, l) {
              var n = C.sql.get
              ;(sql = C.sql.remove), r, val
              this.transaction(function (o) {
                if (m) {
                  r = o.execute(n, [j])
                  if (r.isValidRow()) {
                    val = r.field(0)
                    o.execute(sql, [j]).close()
                    m.call(l || this, true, val)
                  } else {
                    m.call(l || this, false, null)
                  }
                  r.close()
                } else {
                  o.execute(sql, [j]).close()
                }
              })
            },
          },
        },
        whatwg_db: {
          size: 200 * 1024,
          test: function () {
            var j = 'PersistJS Test',
              l = 'Persistent database test.'
            if (!window.openDatabase) {
              return false
            }
            if (!window.openDatabase(j, C.sql.version, l, h.whatwg_db.size)) {
              return false
            }
            return true
          },
          methods: {
            transaction: function (j) {
              if (!this.db_created) {
                var l = C.sql.create
                this.db.transaction(function (m) {
                  m.executeSql(l, [], function () {
                    this.db_created = true
                  })
                }, c)
              }
              this.db.transaction(j)
            },
            init: function () {
              var l, j
              l = this.o.about || 'Persistent storage for ' + this.name
              j = this.o.size || h.whatwg_db.size
              this.db = openDatabase(this.name, C.sql.version, l, j)
            },
            get: function (j, m, l) {
              var n = C.sql.get
              if (!m) {
                return
              }
              l = l || this
              this.transaction(function (o) {
                o.executeSql(n, [j], function (p, q) {
                  if (q.rows.length > 0) {
                    m.call(l, true, q.rows.item(0)['v'])
                  } else {
                    m.call(l, false, null)
                  }
                })
              })
            },
            set: function (l, p, n, m) {
              var j = C.sql.remove,
                o = C.sql.set
              this.transaction(function (q) {
                q.executeSql(j, [l], function () {
                  q.executeSql(o, [l, p], function (u, v) {
                    if (n) {
                      n.call(m || this, true, p)
                    }
                  })
                })
              })
              return p
            },
            remove: function (j, m, l) {
              var n = C.sql.get
              sql = C.sql.remove
              this.transaction(function (o) {
                if (m) {
                  o.executeSql(n, [j], function (p, q) {
                    if (q.rows.length > 0) {
                      var u = q.rows.item(0)['v']
                      p.executeSql(sql, [j], function (v, w) {
                        m.call(l || this, true, u)
                      })
                    } else {
                      m.call(l || this, false, null)
                    }
                  })
                } else {
                  o.executeSql(sql, [j])
                }
              })
            },
          },
        },
        globalstorage: {
          size: 5 * 1024 * 1024,
          test: function () {
            return window.globalStorage ? true : false
          },
          methods: {
            key: function (j) {
              return a(this.name) + a(j)
            },
            init: function () {
              this.store = globalStorage[this.o.domain]
            },
            get: function (j, m, l) {
              j = this.key(j)
              if (m) {
                m.call(l || this, true, this.store.getItem(j))
              }
            },
            set: function (j, n, m, l) {
              j = this.key(j)
              this.store.setItem(j, n)
              if (m) {
                m.call(l || this, true, n)
              }
            },
            remove: function (j, m, l) {
              var n
              j = this.key(j)
              n = this.store[j]
              this.store.removeItem(j)
              if (m) {
                m.call(l || this, n !== null, n)
              }
            },
          },
        },
        localstorage: {
          size: -1,
          test: function () {
            return window.localStorage ? true : false
          },
          methods: {
            key: function (j) {
              return a(this.name) + a(j)
            },
            init: function () {
              this.store = localStorage
            },
            get: function (j, m, l) {
              j = this.key(j)
              if (m) {
                m.call(l || this, true, this.store.getItem(j))
              }
            },
            set: function (j, n, m, l) {
              j = this.key(j)
              this.store.setItem(j, n)
              if (m) {
                m.call(l || this, true, n)
              }
            },
            remove: function (j, m, l) {
              var n
              j = this.key(j)
              n = this.getItem(j)
              this.store.removeItem(j)
              if (m) {
                m.call(l || this, n !== null, n)
              }
            },
          },
        },
        ie: {
          prefix: '_persist_data-',
          size: 64 * 1024,
          test: function () {
            return window.ActiveXObject ? true : false
          },
          make_userdata: function (l) {
            var j = document.createElement('div')
            j.id = l
            j.style.display = 'none'
            j.addBehavior('#default#userData')
            document.body.appendChild(j)
            return j
          },
          methods: {
            init: function () {
              var j = h.ie.prefix + a(this.name)
              this.el = h.ie.make_userdata(j)
              if (this.o.defer) {
                this.load()
              }
            },
            get: function (j, m, l) {
              var n
              j = a(j)
              if (!this.o.defer) {
                this.load()
              }
              n = this.el.getAttribute(j)
              if (m) {
                m.call(l || this, n ? true : false, n)
              }
            },
            set: function (j, n, m, l) {
              j = a(j)
              this.el.setAttribute(j, n)
              if (!this.o.defer) {
                this.save()
              }
              if (m) {
                m.call(l || this, true, n)
              }
            },
            load: function () {
              this.el.load(a(this.name))
            },
            save: function () {
              this.el.save(a(this.name))
            },
          },
        },
        cookie: {
          delim: ':',
          size: 4000,
          test: function () {
            return d.Cookie.enabled ? true : false
          },
          methods: {
            key: function (j) {
              return this.name + h.cookie.delim + j
            },
            get: function (j, n, m, l) {
              j = this.key(j)
              n = b.get(j)
              if (m) {
                m.call(l || this, n != null, n)
              }
            },
            set: function (j, n, m, l) {
              j = this.key(j)
              b.set(j, n, this.o)
              if (m) {
                m.call(l || this, true, n)
              }
            },
            remove: function (j, n, m, l) {
              var n
              j = this.key(j)
              n = b.remove(j)
              if (m) {
                m.call(l || this, n != null, n)
              }
            },
          },
        },
        flash: {
          test: function () {
            if (!window.SWFObject || !swfobject) {
              return false
            }
            var j = swfobject.getFlashPlayerVersion().major
            return j >= 8 ? true : false
          },
          methods: {
            init: function () {
              if (!h.flash.el) {
                var n,
                  l,
                  m,
                  j = C.flash
                m = document.createElement('div')
                m.id = j.div_id
                document.body.appendChild(m)
                n = new SWFObject(this.o.swf_path || j.path, j.id, j.size.w, j.size.h, '8')
                for (l in j.args) {
                  n.addVariable(l, j.args[l])
                }
                n.write(m)
                h.flash.el = document.getElementById(j.id)
              }
              this.el = h.flash.el
            },
            get: function (j, m, l) {
              var n
              j = a(j)
              n = this.el.get(this.name, j)
              if (m) {
                m.call(l || this, n !== null, n)
              }
            },
            set: function (l, o, n, m) {
              var j
              l = a(l)
              j = this.el.set(this.name, l, o)
              if (n) {
                n.call(m || this, true, o)
              }
            },
            remove: function (j, m, l) {
              var n
              j = a(j)
              n = this.el.remove(this.name, j)
              if (m) {
                m.call(l || this, true, n)
              }
            },
          },
        },
      }
      var g = function () {
        var p,
          m,
          j,
          o,
          n = C.methods,
          q = C.search_order
        for (p = 0, m = n.length; p < m; p++) {
          d.Store.prototype[n[p]] = c
        }
        d.type = null
        d.size = -1
        for (p = 0, m = q.length; !d.type && p < m; p++) {
          j = h[q[p]]
          if (j.test()) {
            d.type = q[p]
            d.size = j.size
            for (o in j.methods) {
              d.Store.prototype[o] = j.methods[o]
            }
          }
        }
        d._init = true
      }
      d = {
        VERSION: e,
        type: null,
        size: 0,
        add: function (j) {
          h[j.id] = j
          C.search_order = [j.id].concat(C.search_order)
          g()
        },
        remove: function (l) {
          var j = C.search_order.indexOf(l)
          if (j < 0) {
            return
          }
          C.search_order.splice(j, 1)
          delete h[l]
          g()
        },
        Cookie: b,
        Store: function (j, l) {
          if (!C.name_re.exec(j)) {
            return false
          }
          if (!d.type) {
            return false
          }
          l = l || {}
          this.name = j
          l.domain = l.domain || location.hostname || 'localhost.localdomain'
          this.o = l
          l.expires = l.expires || 365 * 2
          l.path = l.path || '/'
          this.init()
        },
      }
      g()
      return d
    })()
  } catch (zzErr) {}
  RVIDTrack = 10
  RVIDTrack = 11
  newTrack = 22
  if (document.getElementById('RVid') == null) {
    relevantId.createRVIDField('RVid')
  }
  document.getElementById('RVid').value = 'DIAG_' + RVIDTrack + '_x_' + rand_no5

  function isMobile() {
    MobileOSArray = new Array()
    MobileType = new Array()
    MobileType = ['mobile', 'Mobile']
    MobileOSArray.push(MobileType)
    MobileType = ['palm', 'Palm']
    MobileOSArray.push(MobileType)
    MobileType = ['symbian', 'Symbian']
    MobileOSArray.push(MobileType)
    MobileType = ['nokia', 'Nokia']
    MobileOSArray.push(MobileType)
    MobileType = ['webos', 'WebOS']
    MobileOSArray.push(MobileType)
    MobileType = ['sonyericson', 'Sonyericson']
    MobileOSArray.push(MobileType)
    MobileType = ['windows phone', 'Windows Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['smartphone', 'Smartphone']
    MobileOSArray.push(MobileType)
    MobileType = ['windows ce', 'windows CE']
    MobileOSArray.push(MobileType)
    MobileType = ['alcatel', 'Alcatel']
    MobileOSArray.push(MobileType)
    MobileType = ['sonyeric', 'Sonyeric']
    MobileOSArray.push(MobileType)
    MobileType = ['audiovox', 'Audiovox']
    MobileOSArray.push(MobileType)
    MobileType = ['sie-', 'sie']
    MobileOSArray.push(MobileType)
    MobileType = ['lg-', ' LG']
    MobileOSArray.push(MobileType)
    MobileType = ['sec-', 'SEC']
    MobileOSArray.push(MobileType)
    MobileType = ['rover', 'Rover']
    MobileOSArray.push(MobileType)
    MobileType = ['ericsson', 'Ericsson']
    MobileOSArray.push(MobileType)
    MobileType = ['sonyeric', 'Sonyeric']
    MobileOSArray.push(MobileType)
    MobileType = ['ipaq', 'ipaq']
    MobileOSArray.push(MobileType)
    MobileType = ['vodaphone', 'Vodaphone']
    MobileOSArray.push(MobileType)
    MobileType = ['motorola', 'Motorola']
    MobileOSArray.push(MobileType)
    MobileType = ['mot-', 'Motorola']
    MobileOSArray.push(MobileType)
    MobileType = ['blackberry', 'Black Berry']
    MobileOSArray.push(MobileType)
    MobileType = ['black berry', 'Black Berry']
    MobileOSArray.push(MobileType)
    MobileType = ['android', 'Android']
    MobileOSArray.push(MobileType)
    MobileType = ['iphone', 'iPhone']
    MobileOSArray.push(MobileType)
    MobileType = ['ipad', 'iPad']
    MobileOSArray.push(MobileType)
    MobileType = ['itouch', 'iTouch']
    MobileOSArray.push(MobileType)
    for (i = MobileOSArray.length - 1; i >= 0; i--) {
      if (userAgent.toLowerCase().indexOf(MobileOSArray[i][0]) != -1) {
        return [1, MobileOSArray[i][1]]
      }
    }
    if (screen.width < 800 || screen.height < 600) {
      return [1, 'can not detect']
    }
    return [0, '']
  }

  function isMobile1(d) {
    MobileOSArray = new Array()
    MobileType = new Array()
    MobileType = ['mobile', 'Mobile', 'Mobile', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['palm', 'Palm', 'Palm', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['symbian', 'Symbian', 'Symbian', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['nokia', 'Nokia', 'Nokia', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['webos', 'WebOS', 'WebOS', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['sonyericson', 'Sonyericson', 'Sonyericson', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['windows phone', 'Windows Phone', 'Windows Phone', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['smartphone', 'Smartphone', 'Smartphone', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['windows ce', 'windows CE', 'windows CE', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['alcatel', 'Alcatel', 'Alcatel', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['sonyeric', 'Sonyeric', 'Sonyeric', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['audiovox', 'Audiovox', 'Audiovox', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['sie-', 'sie', 'sie', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['lg-', ' LG', ' LG', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['sec-', 'SEC', 'SEC', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['rover', 'Rover', 'Rover', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['ericsson', 'Ericsson', 'Ericsson', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['sonyeric', 'Sonyeric', 'Sonyeric', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['ipaq', 'ipaq', 'ipaq', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['vodaphone', 'Vodaphone', 'Vodaphone', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['motorola', 'Motorola', 'Motorola', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['mot-', 'Motorola', 'Motorola', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['blackberry', 'Black Berry', 'Black Berry', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['black berry', 'Black Berry', 'Black Berry', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['android', 'Android', 'Android', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['iphone', 'iPhone', 'iPhone', 'Phone']
    MobileOSArray.push(MobileType)
    MobileType = ['ipad', 'iPad', 'iPad', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['itouch', 'iTouch', 'iTouch', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['Playbook', 'RIM Tablet', 'RIM Tablet OS', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['SCH-I800', 'Samsung Galaxy Tablet', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['GT-P1000', 'Samsung Galaxy Tablet', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['SGH-T849', 'Samsung Galaxy Tablet', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['GT-I9000T', 'Samsung Galaxy Tablet', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['SHW-M180S', 'Samsung Galaxy Tablet', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['Xoom|Android', 'Motorola Xoom Tablet', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['Kindle', 'Amazon Kindle', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['Silk', 'Amazon Kindle', 'Android', 'Tablet']
    MobileOSArray.push(MobileType)
    MobileType = ['Tablet PC', 'Tablet PC', 'Tablet PC', 'Tablet']
    MobileOSArray.push(MobileType)
    var e = false
    var a = true
    var b
    for (var c = MobileOSArray.length - 1; c >= 0; c--) {
      b = MobileOSArray[c][0].toLowerCase().split('|')
      a = false
      for (k = 0; k < b.length; k++) {
        if (userAgent.toLowerCase().indexOf(b[k]) == -1) {
          a = true
          break
        }
      }
      if (a == false) {
        e = true
      }
      if (e == true) {
        break
      }
    }
    if (e == true) {
      addCapValue('mobiledevice', true)
      addCapValue('mobiledevicename', MobileOSArray[c][1])
      addCapValue('platform', MobileOSArray[c][2])
      addCapValue('mobiletype', MobileOSArray[c][3])
    } else {
      if (screen.width < 800 || screen.height < 600) {
        addCapValue('mobiledevice', true)
        addCapValue('mobiledevicename', 'can not detect')
      } else {
        addCapValue('mobiledevice', false)
        addCapValue('mobiledevicename', '')
      }
    }
    if (d == 1) {
      addCapValue('mobiletype', 'Phone')
    } else {
      if (d == 2) {
        addCapValue('mobiletype', 'Tablet')
      } else {
        addCapValue('mobiletype', '')
      }
    }
  }
  newTrack = 23

  function getScore(a) {
    relevantId.getScore(a)
  }

  function inIframe() {
    try {
      return window.self !== window.top
    } catch (a) {
      return true
    }
  }

  function featDetectBrowser() {
    try {
      if ((!!window.opr && !!opr.addons) || !!window.opera || !!window.operamini) {
        return 'Opera'
      }
      if (typeof InstallTrigger !== 'undefined' || !!screen.mozOrientation) {
        return 'Firefox'
      }
      if (!!document.documentMode || !!window.ActiveXObject) {
        return 'IE'
      } else {
        if (!!window.StyleMedia || _pluginContains(0, 'Edge PDF Viewer')) {
          return 'Edge-Legacy'
        }
      }
      if (!!window.chrome) {
        if (_pluginContains(0, 'Microsoft Edge')) {
          return 'Edge-Chromium'
        } else {
          if (
            !!window.yandex ||
            _pluginContains(0, 'BookReader') ||
            _pluginContains(navigator.plugins ? navigator.plugins.length - 1 : -1, 'Yandex')
          ) {
            return 'Yandex'
          } else {
            if (_pluginContains(0, 'Chrome') && _pluginContains(1, 'Chrome')) {
              return 'Chrome'
            } else {
              return 'Chromium'
            }
          }
        }
      }
      if (
        (function (b) {
          return b.toString() === '[object SafariRemoteNotification]'
        })(!window.safari || (typeof safari !== 'undefined' && window.safari.pushNotification))
      ) {
        return 'Safari'
      }
    } catch (a) {}
    return 'Unknown'
  }

  function _pluginContains(b, a) {
    return (
      navigator.plugins &&
      navigator.plugins[b] &&
      navigator.plugins[b].name &&
      navigator.plugins[b].name.indexOf(a) != -1
    )
  }

  function IsPageTranslated() {
    try {
      return !!document.querySelector(
        'html.translated-ltr, head.translated-rtl, ya-tr-span, *[_msttexthash]',
      )
    } catch (a) {
      sendLogMessageAsync('w', 'An error occurred while checking if page is translated', a)
    }
  }

  function checkForAutomatedBrowserProps() {
    var a = []
    if (navigator.webdriver) {
      a.push('webdriver')
    }
    if (window.Cypress) {
      a.push('Cypress')
    }
    if (window.callPhantom) {
      a.push('callPhantom')
    }
    if (window._phantom) {
      a.push('_phantom')
    }
    if (window.phantom) {
      a.push('phantom')
    }
    if (window.__nightmare) {
      a.push('__nightmare')
    }
    if (document.__selenium_unwrapped) {
      a.push('__selenium_unwrapped')
    }
    if (document.__webdriver_evaluate) {
      a.push('__webdriver_evaluate')
    }
    if (document.__driver_evaluate) {
      a.push('__driver_evaluate')
    }
    return a
  }

  function notificationPermissions() {
    try {
      if (!navigator.permissions || !navigator.permissions.query) {
        rvidFreezeSetProp(_extraDataPoints, 'NotificationPermissions', 0)
        return
      }
      if (isNotificationPermissionsOverridden()) {
        rvidFreezeSetProp(_extraDataPoints, 'NotificationPermissions', 3)
        return
      }
      navigator.permissions
        .query({
          name: 'notifications',
        })
        .then(function (b) {
          if (Notification.permission === 'denied' && b.state === 'prompt') {
            rvidFreezeSetProp(_extraDataPoints, 'NotificationPermissions', 1)
          } else {
            rvidFreezeSetProp(_extraDataPoints, 'NotificationPermissions', 2)
          }
        })
    } catch (a) {}
  }

  function isNotificationPermissionsOverridden() {
    var c = window.navigator.permissions
    if (!c) {
      return false
    }
    var a = c.query.toString()
    var b = c.query.toString.toString()
    if (
      a !== 'function query() { [native code] }' &&
      a !== 'function query() {\n    [native code]\n}'
    ) {
      return true
    }
    if (
      b !== 'function toString() { [native code] }' &&
      b !== 'function toString() {\n    [native code]\n}'
    ) {
      return true
    }
    if (
      c.query.toString.hasOwnProperty('[[Handler]]') &&
      c.query.toString.hasOwnProperty('[[Target]]') &&
      c.query.toString.hasOwnProperty('[[IsRevoked]]')
    ) {
      return true
    }
    if (c.hasOwnProperty('query')) {
      return true
    }
    return false
  }

  function keyboardLayoutMapSize() {
    if (!navigator.keyboard || !navigator.keyboard.getLayoutMap || inIframe()) {
      return
    }
    navigator.keyboard.getLayoutMap().then(function (a) {
      rvidFreezeSetProp(_extraDataPoints, 'KeyboardLayoutMapSize', a.size)
    })
  }

  function mediaDevicesConstraintsCount() {
    if (!navigator.mediaDevices || !navigator.mediaDevices.getSupportedConstraints) {
      return null
    }
    if (!Object.getOwnPropertyNames) {
      return null
    }
    var a = navigator.mediaDevices.getSupportedConstraints()
    if (!a) {
      return null
    }
    return Object.getOwnPropertyNames(a).length
  }

  function _supportsBluetooth() {
    if (!navigator.bluetooth || !navigator.bluetooth.getAvailability) {
      rvidFreezeSetProp(_extraDataPoints, 'SupportsBluetooth', 2)
      return
    }
    navigator.bluetooth.getAvailability().then(function (a) {
      rvidFreezeSetProp(_extraDataPoints, 'SupportsBluetooth', a ? 1 : 0)
    })
  }

  function storageManagerDetails() {
    if (!navigator.storage || !navigator.storage.estimate) {
      return
    }
    navigator.storage.estimate().then(function (a) {
      var b = a.quota < 9223372036854775000 ? a.quota : 9223372036854775000
      rvidFreezeSetProp(_extraDataPoints, 'StorageManagerQuotaBytes', b)
      var c = a.usage < 9223372036854775000 ? a.usage : 9223372036854775000
      rvidFreezeSetProp(_extraDataPoints, 'StorageManagerUsageBytes', c)
    })
  }

  function _userAgentClientHints() {
    if (!navigator.userAgentData) {
      return
    }
    try {
      if (navigator.userAgentData.brands) {
        rvidFreezeSetProp(
          _extraDataPoints,
          'NavUAHintBrands',
          JSON.stringify(navigator.userAgentData.brands),
        )
      }
      if (navigator.userAgentData.platform) {
        rvidFreezeSetProp(_extraDataPoints, 'NavUAHintPlatform', navigator.userAgentData.platform)
      }
      if (navigator.userAgentData.mobile !== undefined) {
        rvidFreezeSetProp(_extraDataPoints, 'NavUAHintMobile', navigator.userAgentData.mobile)
      }
      if (navigator.userAgentData.getHighEntropyValues) {
        navigator.userAgentData
          .getHighEntropyValues([
            'architecture',
            'model',
            'platformVersion',
            'uaFullVersion',
            'fullVersionList',
          ])
          .then(function (b) {
            if (b.uaFullVersion) {
              rvidFreezeSetProp(_extraDataPoints, 'NavUAHintBrowserFullVersion', b.uaFullVersion)
            }
            if (b.fullVersionList) {
              rvidFreezeSetProp(
                _extraDataPoints,
                'NavUAHintBrowserFullVersionList',
                JSON.stringify(b.fullVersionList),
              )
            }
            if (b.platformVersion) {
              rvidFreezeSetProp(_extraDataPoints, 'NavUAHintPlatformVersion', b.platformVersion)
            }
            if (b.model) {
              rvidFreezeSetProp(_extraDataPoints, 'NavUAHintModel', b.model)
            }
            if (b.architecture) {
              rvidFreezeSetProp(_extraDataPoints, 'NavUAHintArchitecture', b.architecture)
            }
          })
      }
    } catch (a) {}
  }

  function _accelDetect() {
    if (!window.addEventListener || !window.DeviceMotionEvent) {
      rvidFreezeSetProp(_extraDataPoints, 'HasAccelerometer', 2)
      return
    }
    _extraDataPoints.HasAccelerometer = 0

    function a(c) {
      var b =
        c.accelerationIncludingGravity &&
        typeof c.accelerationIncludingGravity.x === 'number' &&
        typeof c.accelerationIncludingGravity.y === 'number' &&
        typeof c.accelerationIncludingGravity.z === 'number'
      window.removeEventListener('devicemotion', a, false)
      rvidFreezeSetProp(_extraDataPoints, 'HasAccelerometer', b ? 1 : 0)
    }
    window.addEventListener('devicemotion', a, false)
  }

  function _gyroDetect() {
    if (!window.addEventListener || !window.DeviceOrientationEvent) {
      rvidFreezeSetProp(_extraDataPoints, 'HasGyroscope', 2)
      return
    }
    _extraDataPoints.HasGyroscope = 0

    function a(c) {
      var b =
        typeof c.alpha === 'number' && typeof c.beta === 'number' && typeof c.gamma === 'number'
      window.removeEventListener('deviceorientation', a, false)
      rvidFreezeSetProp(_extraDataPoints, 'HasGyroscope', b ? 1 : 0)
    }
    window.addEventListener('deviceorientation', a, false)
  }

  function getAudioSampleRate() {
    try {
      window.AudioContext = window.AudioContext || window.webkitAudioContext
      if (!window.AudioContext) {
        return -1
      }
      return new window.AudioContext().sampleRate
    } catch (a) {
      return -1
    }
  }

  function mediaDeviceGroups() {
    if (!navigator.mediaDevices || !navigator.mediaDevices.enumerateDevices) {
      rvidFreezeSetProp(_extraDataPoints, 'MediaDeviceGroups', {})
      return
    }
    navigator.mediaDevices.enumerateDevices().then(function (e) {
      var a = {}
      var d
      for (var b = 0; b < e.length; b++) {
        d = e[b].groupId.substring(0, 8)
        if (!a[d]) {
          a[d] = []
        }
        a[d].push(e[b].kind)
      }
      rvidFreezeSetProp(_extraDataPoints, 'MediaDeviceGroups', a)
    })
  }

  function _detectPrivacyMode() {
    var browserName = 'Unknown'
    _extraDataPoints.JSPrivacyDetect = 2

    function __callback(isPrivate) {
      rvidFreezeSetProp(_extraDataPoints, 'JSPrivacyDetect', isPrivate ? 1 : 0)
    }

    function identifyChromium() {
      var ua = navigator.userAgent
      if (ua.match(/Chrome/)) {
        if (ua.match(/Edg/)) {
          return 'Edge'
        } else {
          if (navigator.brave !== undefined) {
            return 'Brave'
          } else {
            if (navigator.opr !== undefined) {
              return 'Opera'
            }
          }
        }
        return 'Chrome'
      } else {
        return 'Chromium'
      }
    }

    function assertEvalToString(value) {
      return value === eval.toString().length
    }

    function isSafari() {
      var v = navigator.vendor
      return v !== undefined && v.indexOf('Apple') === 0 && assertEvalToString(37)
    }

    function isChrome() {
      var v = navigator.vendor
      return v !== undefined && v.indexOf('Google') === 0 && assertEvalToString(33)
    }

    function isFirefox() {
      return (
        document.documentElement !== undefined &&
        document.documentElement.style.MozAppearance !== undefined &&
        assertEvalToString(37)
      )
    }

    function isMSIE() {
      return (navigator.msSaveBlob !== undefined && assertEvalToString(39)) || !!window.StyleMedia
    }

    function macOS_safari14() {
      try {
        window.safari.pushNotification.requestPermission(
          'https://example.com',
          'private',
          {},
          function () {},
        )
      } catch (e) {
        return __callback(!new RegExp('gesture').test(e))
      }
      return __callback(false)
    }

    function iOS_safari14() {
      var tripped = false
      var iframe = document.createElement('iframe')
      iframe.style.display = 'none'
      document.body.appendChild(iframe)
      iframe.contentWindow.applicationCache.addEventListener('error', function () {
        tripped = true
        return __callback(true)
      })
      setTimeout(function () {
        if (!tripped) {
          __callback(false)
        }
      }, 100)
    }

    function oldSafariTest() {
      var openDB = window.openDatabase
      var storage = window.localStorage
      try {
        openDB(null, null, null, null)
      } catch (e) {
        return __callback(true)
      }
      try {
        storage.setItem('test', '1')
        storage.removeItem('test')
      } catch (e) {
        return __callback(true)
      }
      return __callback(false)
    }

    function safariPrivateTest() {
      var w = window
      if (navigator.maxTouchPoints !== undefined) {
        if (w.safari !== undefined && w.DeviceMotionEvent === undefined) {
          browserName = 'Safari for macOS'
          macOS_safari14()
        } else {
          if (w.DeviceMotionEvent !== undefined) {
            browserName = 'Safari for iOS'
            iOS_safari14()
          } else {
            throw new Error('detectIncognito Could not identify this version of Safari')
          }
        }
      } else {
        oldSafariTest()
      }
    }

    function getQuotaLimit() {
      var w = window
      if (
        w.performance !== undefined &&
        w.performance.memory !== undefined &&
        w.performance.memory.jsHeapSizeLimit !== undefined
      ) {
        return performance.memory.jsHeapSizeLimit
      }
      return 1073741824
    }

    function storageQuotaChromePrivateTest() {
      navigator.webkitTemporaryStorage.queryUsageAndQuota(
        function (usage, quota) {
          __callback(quota < getQuotaLimit())
        },
        function (e) {},
      )
    }

    function oldChromePrivateTest() {
      var fs = window.webkitRequestFileSystem
      var success = function () {
        __callback(false)
      }
      var error = function () {
        __callback(true)
      }
      fs(0, 1, success, error)
    }

    function chromePrivateTest() {
      if (window.Promise !== undefined && window.Promise.allSettled !== undefined) {
        storageQuotaChromePrivateTest()
      } else {
        oldChromePrivateTest()
      }
    }

    function firefoxPrivateTest() {
      __callback(navigator.serviceWorker === undefined)
    }

    function msiePrivateTest() {
      __callback(window.indexedDB === undefined)
    }
    try {
      if (isSafari()) {
        safariPrivateTest()
      } else {
        if (isChrome()) {
          browserName = identifyChromium()
          chromePrivateTest()
        } else {
          if (isFirefox()) {
            browserName = 'Firefox'
            firefoxPrivateTest()
          } else {
            if (isMSIE()) {
              browserName = 'Internet Explorer'
              msiePrivateTest()
            }
          }
        }
      }
    } catch (e) {}
  }

  function getAllMimeTypes() {
    var c = []
    try {
      if (!window.navigator.mimeTypes) {
        return c
      }
      for (var b = 0; b < window.navigator.mimeTypes.length; b++) {
        var d = window.navigator.mimeTypes[b]
        if (d) {
          c.push(d.type)
        }
      }
    } catch (a) {}
    return c
  }

  function rvidDevToolsOpen() {
    try {
      if (
        ['Chromium', 'Chrome', 'Edge-Chromium', 'Opera', 'Yandex'].indexOf(
          _extraDataPoints.FeatDetectedBrowser,
        ) > -1 &&
        navigator.userAgent.indexOf('iPad') == -1 &&
        navigator.userAgent.indexOf('iPhone') == -1
      ) {
        var a = new Date()
        var d = 0
        a.toString = function () {
          d++
          return ''
        }
        console.log(a)
        return d === 2 ? 1 : 0
      } else {
        if (
          ['Firefox', 'IE'].indexOf(_extraDataPoints.FeatDetectedBrowser) > -1 &&
          navigator.userAgent.indexOf('iPad') == -1 &&
          navigator.userAgent.indexOf('iPhone') == -1 &&
          navigator.userAgent.indexOf('Android') == -1
        ) {
          var c = / /
          var b = false
          c.toString = function () {
            b = true
            return ' '
          }
          console.log(c)
          return b ? 1 : 0
        }
      }
    } catch (g) {}
    return 0
  }
  var FontDetector = function () {
    var c = document.getElementsByTagName('body')[0]
    var g = document.createElement('DIV')
    var b = document.createElement('SPAN')
    g.appendChild(b)
    g.style.fontFamily = 'sans'
    b.style.fontFamily = 'sans'
    b.style.fontSize = '72px'
    b.innerHTML = 'mmmmmmmmmmlil'
    c.appendChild(g)
    var l = b.offsetWidth
    var e = b.offsetHeight
    c.removeChild(g)

    function a(d) {
      c.appendChild(g)
      var h = []
      h[0] = b.style.fontFamily = d
      h[1] = b.offsetWidth
      h[2] = b.offsetHeight
      c.removeChild(g)
      d = d.toLowerCase()
      if (d == 'serif') {
        h[3] = true
      } else {
        h[3] = h[1] != l || h[2] != e
      }
      return h
    }

    function j(d) {
      f = a(d)
      return f[3] ? '1' : '0'
    }
    this.detailedTest = a
    this.test = j
  }
  fontinstalled = function (b) {
    var a = new FontDetector()
    return a.test(b)
  }
  fh1 =
    fontinstalled('cursive') +
    fontinstalled('default') +
    fontinstalled('King') +
    fontinstalled('Papyrus') +
    fontinstalled('calibri')
  newTrack = 24
  getDataPoints()
  newTrack = 25
  document.getElementById('RVid').value = 'DIAG_999_' + rand_no5
} catch (error) {
  sendLogMessageAsync('e', 'Catch all error.', error)
  throw error
}
